如何在DLL中调用另一个DLL??????????????????????????????????????

antonye 2001-10-23 08:36:17
我做了一个主程序,两个DLL,其中一是公用函数,一个是子窗体
子窗体如何调用公用函数??????????????????
我做时老是出错????????????????????
...全文
199 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
antonye 2001-11-09
  • 打赏
  • 举报
回复
zzzz
antonye 2001-10-30
  • 打赏
  • 举报
回复
up gz
antonye 2001-10-25
  • 打赏
  • 举报
回复


to hellion(恶人) 
如何改变指针的的长度,我做的老出错
HMapFile := CreateFileMapping($FFFFFFFF,nil,Page_ReadWrite,0,DataSize*3,VirtualFileName);
if HMapFile <> 0 then
begin
ReStr1 := MapViewOfFile(HMapFIle,File_Map_Write,0,0,StrSize);
ReStr2 := MapViewOfFile(HMapFIle,File_Map_Write,0,DataSize,StrSize);
ReStr3 := MapViewOfFile(HMapFIle,File_Map_Write,0,DataSize*2,StrSize);

请诊断
antonye 2001-10-24
  • 打赏
  • 举报
回复
up
antonye 2001-10-24
  • 打赏
  • 举报
回复
能否举例
也可EMail: Wind-maple@sohu.com
hellion 2001-10-24
  • 打赏
  • 举报
回复
用长string必须使用sharemem单元,但好象有问题。
用指针吧,若长度变化不大或能确定最大长度,外面申请好,否则传入指针与长度,dll中不够就扩大。
antonye 2001-10-24
  • 打赏
  • 举报
回复
那用什么??
hellion 2001-10-24
  • 打赏
  • 举报
回复
不要用string(或^string)传递参数
antonye 2001-10-24
  • 打赏
  • 举报
回复
主DLL和子DLL中都有定义
var
HMapFile: THandle;
SelQuery,SelNo,IsSel: ^string;
const
VirtualFIleName = 'PublicData';
StrSize = Sizeof(string);

initialization
HMapFile := CreateFileMapping($FFFFFFFF,nil,Page_ReadWrite,0,StrSize*3,VirtualFileName);
if HMapFile <> 0 then
begin
SelQuery := MapViewOfFile(HMapFIle,File_Map_Write,0,0,StrSize);
SelNo:= MapViewOfFile(HMapFIle,File_Map_Write,0,StrSize,StrSize);
IsSel := MapViewOfFile(HMapFIle,File_Map_Write,0,StrSize*2,StrSize);
end;

finalization
UnMapViewOfFile(SelQuery);
UnMapViewOfFile(SelNo);
UnMapViewOfFile(IsSel);
CloseHandle(HMapFile);

子调用程序DLL
if ShowModal=mrOK then
if ADOQuery.Active then
begin
IsSel^ := '1';
SelQuery^ := 'Select * ' + SelSQL;
SelNo^ := FirstNo;
end;
Free;

解者感激涕零
lovewangj 2001-10-24
  • 打赏
  • 举报
回复
返回多少个值都是没有问题的,贴出代码来看看。
antonye 2001-10-24
  • 打赏
  • 举报
回复
另请教MapViewofFile各个参数的作用和如何应用
antonye 2001-10-24
  • 打赏
  • 举报
回复
是这样
主DLL调用子DLL时,子DLL需要返回三个值,
不返回没有问题,返回就有问题
hellion 2001-10-24
  • 打赏
  • 举报
回复
dll调dll跟exe调dll是一样的,贴代码看看
machin 2001-10-24
  • 打赏
  • 举报
回复

帮你UP一下~~~

我也不懂~~~
antonye 2001-10-24
  • 打赏
  • 举报
回复
up
eastxiang 2001-10-24
  • 打赏
  • 举报
回复
up
maple2001 2001-10-24
  • 打赏
  • 举报
回复
用PChar,参数一定要用空字符结尾的字符串指针,string不是空字符结尾的。
antonye 2001-10-24
  • 打赏
  • 举报
回复
up

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧