小编ami*_*min的帖子

将Delphi字符串作为参数发送到DLL

我想在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个字节.我试图转换为不同的字符串类型(AnsiCharShortString)但我失败了.

这样做的正确方法是什么?

delphi string parameters dll

5
推荐指数
2
解决办法
6941
查看次数

标签 统计

delphi ×1

dll ×1

parameters ×1

string ×1