Sergio, aqui na empresa temos solução de frente de caixa toda em WD.
O que você deve ter atenção é:
- No WD existem 2 formas de usar DLLs (CallDLL32() ou API())
o uso da API() é recomendado caso vc vai acessar alguma coisa na API do windows (dlls do windows ex.: USER32, KERNEL32 ...), caso contrario é melhor usar a CallDLL32.
na tua aplicação, antes de tudo carregue a DLL em memória com a função LoadDLL(), aà então é so chamar as funções dela com o CallDLL32, outro ponto importante é o tamanho das variáveis a serem passadas, como existem casos na dll da bematech por ex. a função que retorna o número do cupom (Bematech_FI_NumeroCupom) essa função irá acessar uma variável da tua aplicação atilizando ponteiros, tua variavel tem de estar de acordo com o esperado pela dll, nessa função em questão pela documentação da bematech, ela espera uma string de 6 caracteres, logo você deve iniciar uma string com 6 caracteres em branco para funcionar. Ex:
LoadDLL("BemaFI32.dll")
nRetorno is int
sNroCupom is string
sNroCupom = Complete(" ",6)
nRetorno = CallDLL32("BemaFI32.dll","Bematech_FI_NumeroCupom",sNroCupom)