DLL - Dicas
Lembre-se das dicas a seguir ao escrever uma DLL -
Use a convenção de chamada adequada (C ou stdcall).
Esteja ciente da ordem correta dos argumentos passados para a função.
NUNCA redimensione arrays ou concatene strings usando os argumentos passados diretamente para uma função. Lembre-se de que os parâmetros que você passa são dados do LabVIEW. Mudar o tamanho do array ou string pode resultar em uma falha ao sobrescrever outros dados armazenados na memória do LabVIEW. Você PODE redimensionar arrays ou concatenar strings se passar um LabVIEW Array Handle ou LabVIEW String Handle e estiver usando o compilador Visual C ++ ou o compilador Symantec para compilar sua DLL.
Ao passar strings para uma função, selecione o tipo correto de string para passar. Identificador de string C ou Pascal ou LabVIEW.
As strings Pascal são limitadas a 255 caracteres de comprimento.
As strings C são terminadas em NULL. Se sua função DLL retornar dados numéricos em um formato de string binária (por exemplo, via GPIB ou a porta serial), ela pode retornar valores NULL como parte da string de dados. Nesses casos, passar matrizes de inteiros curtos (8 bits) é mais confiável.
Se você estiver trabalhando com arrays ou strings de dados, SEMPRE passe um buffer ou array que seja grande o suficiente para conter quaisquer resultados colocados no buffer pela função, a menos que você os esteja passando como alças do LabVIEW, caso em que você pode redimensioná-los usando CIN funções no compilador Visual C ++ ou Symantec.
Liste as funções DLL na seção EXPORTS do arquivo de definição de módulo se você estiver usando _stdcall.
Liste as funções DLL que outros aplicativos chamam na seção EXPORTS do arquivo de definição de módulo ou para incluir a palavra-chave _declspec (dllexport) na declaração da função.
Se você usar um compilador C ++, exporte funções com a instrução extern .C. {} Em seu arquivo de cabeçalho para evitar mutilação de nome.
Se você estiver escrevendo sua própria DLL, não deve recompilar uma DLL enquanto a DLL é carregada na memória por outro aplicativo. Antes de recompilar uma DLL, certifique-se de que todos os aplicativos que usam essa DLL específica sejam descarregados da memória. Isso garante que a própria DLL não seja carregada na memória. Você pode falhar ao reconstruir corretamente se esquecer isso e seu compilador não avisar.
Teste suas DLLs com outro programa para garantir que a função (e a DLL) se comporte corretamente. Testá-lo com o depurador do seu compilador ou um programa C simples no qual você pode chamar uma função em uma DLL ajudará a identificar se as possíveis dificuldades são inerentes à DLL ou ao LabVIEW.