DLL
function test(var b : array of pchar) : pchar;stdcall;
var
i : integer;
begin
for i := low(b) to high(b) do
b[i] := pchar(format('第%d',[i]));
result := 'test';
end;
EXE:
var
b : array of pchar;
begin
loaddll...
setlength(b,3);
test(b);
for i := low(b) to high(b) do
memo1.lines.add(strpas(b[i]));
end;输出的时候出现乱码
如果DLL修改成
function test(var b : array of pchar) : pchar;stdcall;
begin
b[0] := pchar('第0');
b[1] := pchar('第1');
b[2] := pchar('第2');
end;
正确。
function test(var b : array of pchar) : pchar;stdcall;
var
i : integer;
begin
for i := low(b) to high(b) do
b[i] := pchar(format('第%d',[i]));
result := 'test';
end;
EXE:
var
b : array of pchar;
begin
loaddll...
setlength(b,3);
test(b);
for i := low(b) to high(b) do
memo1.lines.add(strpas(b[i]));
end;输出的时候出现乱码
如果DLL修改成
function test(var b : array of pchar) : pchar;stdcall;
begin
b[0] := pchar('第0');
b[1] := pchar('第1');
b[2] := pchar('第2');
end;
正确。
解决方案 »
- 关于软件更新,如何从服务器上下载新版本的软件?
- 100分!★★[listview!!]★★ listview实现 保存 与 读取 !
- 我用API编串口程序,怎么实现同时接收和发送?
- winexec 没有执行mysql的导入语句,为什么?
- 在dbgrid上拖动滚动条触发什么时间?
- 我的主程序传递一个数据库连接字符串给dll,到了dll里面怎么会变成乱码了?
- 如何用SQL语句更改表名,怎么用EXEC SP-rename table1,table2,object不行,在线等
- 如何在delphi中调用执行windows的exe文件,刚学delphi,期待大家的帮助
- DBGRID中镶嵌SpeedButton的问题
- PageContral标签在左侧时,标签中的文字自从下,怎样使其从左到右
- 如何实现“打开所在文件夹”,并使文件获得焦点
- sql语句请教?
比如我要把TSTRINGGRID中用户输入的内容作为参数传到DLL中。
我原来好象用的 array of array of pchar
或者也可以使用array of TStringList,或者也可以单用一个TStringList(单行数据当中各列之间使用分隔符。或者也可以就直接使用String,那样就是各列之间要用特定的分隔符,各行之间也要用特定型的分隔符。例如:[data_0_0]<TAB>[data_0_1]<TAB><CR>[data_1_0]<TAB>[data_1_1]<TAB><CR>
[data_0_0] [data_0_1]
[data_1_0] [data_1_1]