呵呵,当然拉,你DLL中改为:StrPCopy(mss, 'Quit');调用程序改为:
procedure TForm1.Button1Click(Sender: TObject);
var iRet:smallint;
sPS:array[0..255] of char;
begin
StrPCopy(sPS,'are you');
iRet:=ss(sPs);
edit1.text:=intTostr(iRet);
end;
procedure TForm1.Button1Click(Sender: TObject);
var iRet:smallint;
sPS:array[0..255] of char;
begin
StrPCopy(sPS,'are you');
iRet:=ss(sPs);
edit1.text:=intTostr(iRet);
end;
解决方案 »
- 关于stringgrid的问题,如何使指定的单元格可被编辑(stringgrid不允许编辑状态下)
- 【用ADO控件连接ACCESS数据库的问题】
- 怎样显示一个完整的表
- Delphi里多线程里面怎么进行通信?
- 怎样禁止程序重复运行?
- 200分:200分:关于窗体继承和事务控制:谁能解决?困扰了我好几天,怎么就没人懂呢?????
- 请问那里有spcomm下载??要确实能下的,深度历险不能下...
- 关于DbLookupCombobox的问题。
- 米卢真的神奇吗?
- 各位好,我看到过较多关于利用RETURN代替TAB的过程,都觉得较繁,希各位提供高招
- 我在PageControl上放置一个TWebBrowser,想在新开窗口时在后台打开,但是后台打开的页标签的Caption属性要为那个网页的Name!怎么办?
- 快来救急
TSS = function(var yss:pchar):smallint;stdcall;
var
Form1: TForm1;
HLibHandle: HModule;implementation
{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var iRet:smallint;
sPS:PCHAR;
ss:Tss;
begin
HLibHandle := LoadLibrary('Project2.dll');
try
@ss := GetProcAddress(HLibHandle,'ss');
sPS:='are you';
iRet:=ss(sPs);
edit1.text:=intTostr(iRet);
finally
FreeLibrary(HLibHandle);
end;
end;end.
to weizhi(行者) :
照你的做法,在编译时iRet:=ss(sPs);行提示
Types of actual and formal var parameters must be identicalto liusp(带着我的影子去流浪) :
按你的做法还是问题如故:都是提示: 'Invalid Pointer Operation'
DLL中
function ss(mss:pchar):smallint;stdcall;export;调用程序中:
function ss( yss:pchar):smallint;stdcall;external 'e:\delphidll\tmp\Project2.dll' name 'ss';
编译是通过了,但执行后一样的出错。能否将代码放到你的机器上执行一下,我怀疑我的机器或delphi5是否有问题呢?
// ShareMem, //如果加此行,则必须是在第一行的
SysUtils,
Classes;
正如你所说,现在可以了!很感谢你的帮助!呵呵