function aaa ( A:Pchar,id:integer,B:Pchar,
C:Pchar;No:Double;D:Pchar;E:Pchar;
F:Pchar):integer;stdcall;
返回值
成功:0
同时对 B,C,NO,D,E赋值
失败:1
我写aaa函数时,怎样对形参B,C,NO,D,E赋值,用户调用aaa函数怎样调用形参的值?
C:Pchar;No:Double;D:Pchar;E:Pchar;
F:Pchar):integer;stdcall;
返回值
成功:0
同时对 B,C,NO,D,E赋值
失败:1
我写aaa函数时,怎样对形参B,C,NO,D,E赋值,用户调用aaa函数怎样调用形参的值?
解决方案 »
- 请问这段代码如何调试?
- TControl的一个消息过程的问题?
- ExcelApp: Variant和ExcelApp:=CreateOleObject('Excel.application')这两句话一定要写在同一个过程里吗?
- 自已開發的*.bpl,已安裝﹐怎 樣做才能出現在NEW Item的頁面組中﹗
- 心里很不爽,请兄弟们给我一点建议
- 大家看看!做程序员还有意思么?!
- 庆祝我的控件下载突破1000次!散分,希望大家鼓励!
- 难题,如何取出webbrowes控件中的一个网页。。。。。。。。分不够再加
- 如何使用第3方控件中的wwDBLookupComboDlg1控件?急。。。。。。。。。。。。。
- DELPHI高手请进!!!
- 设计一个程序,只允许被许可的程序才能被执行
- directx中的问题求救
如果在DELPHI内部使用,为什么不用STRING类型?
如果需要和其他程序交互(例如DLL)
使用PChar要注意内存的分配。
你看所有的WINDOWS API使用到需要返回的字符串时都要传一个字符串长度的。
例如:
int GetWindowText( HWND hWnd, LPTSTR lpString, int nMaxCount );正确的方法应该这样写:
function aaa(B:PChar; BMaxLength:integer);
begin
B := 'aaa';
//在这儿为B赋值,注意B的长度不得超过BMaxLength-1
end;
调用:
var
b:array[0..100] of char;
begin
aaa(B, sizeof(B));
end;建议把你的这么多参数封装到一个record中。
C:Pchar;No:Double;D:Pchar;E:Pchar;
F:Pchar):integer;stdcall;
返回值
成功:0
同时对 B,C,NO,D,E赋值
失败:1
这是一个DLL函数,用户调用这个DLL函数时,怎样能把B,C,NO,D,E的值调用出来.
type TParams = record
B:array [0..255] of char;
C:array [0..255] of char;
D:array [0..255] of char;
E:array [0..255] of char;
F:array [0..255] of char; //注意要保证字符串的长度够用
No :double;
end;
function aaa(A:PChar; param :TParams);
begin
end;
function aaa(A:PChar; var param :TParams);
begin
param.No := 1;
end;var param :TParams
aaa('', param);
params.no;