我想在Delphi 2010中调用DLL函数.该函数接受一个字符串并将其写入带有USB接口的打印机.我不知道DLL开发的语言是什么.根据文档,该函数的语法是:
int WriteUSB(PBYTE pBuffer, DWORD nNumberOfBytesToWrite);
Run Code Online (Sandbox Code Playgroud)
如何在Delphi中声明和使用我的函数?
我声明这样的函数:
var
function WriteUSB(myP:pByte;n:DWORD): integer ; external 'my.dll';
Run Code Online (Sandbox Code Playgroud)
我应该使用stdcall还是cdecl在声明中?
我这样调用DLL函数:
procedure myProc;
var
str : string:
begin
str := 'AAAAAAAAAAAAAAAAAAAAA';
WriteUSB(str,DWORD(length(tmp)));
end;
Run Code Online (Sandbox Code Playgroud)
但是这段代码总是给我一个例外.我知道问题是StringUnicode和每个字符> 1个字节.我试图转换为不同的字符串类型(AnsiChar和ShortString)但我失败了.
这样做的正确方法是什么?