首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

怎么在DLL中写一个窗体,让其他模块调用

2012-02-29 
如何在DLL中写一个窗体,让其他模块调用?我想在DLL中写一个公用的查询窗体,让其他模块调用,请问1,在DLL中的

如何在DLL中写一个窗体,让其他模块调用?
我想在DLL中写一个公用的查询窗体,让其他模块调用,请问

1,在DLL中的窗体如何写
2,其他模块如何来调用

我用的是DELPHI7
这里先谢谢大家!

[解决办法]

1.函数返回string类型时:
动态库工程引用的第一个单元必须是sharemem;
应用程序工程文件中第一个引用单元必须是sharemem;
发布应用程序时,必须把borlandmem.dll一起发布;
建议:使用字符串指针类(PChar)型作为返回类型;PCHAR是WINDOWS的标准数据类型。

2.代码中存在的问题:
function test:string;stdcall;
begin
try
inherited;//这一句没有必要要了。
//frmTEST := TfrmTEST.Create(self);//DLL工程与一般的窗体类型的工程不一样,
//没有SELF指针,DLL只有一个APPLICATION对象,且与调用的应用程序的APPLICATION对象
//是不一样的。在创建动态窗体时,你可以使用NIL就行了。
frmTEST := TfrmTEST.Create(nil);
if frmTEST.ShowModal=mrok then
Result := frmTEST.str;//函数返回的控制应当放在这儿。
//放在最后肯定会报内存访问错的。因为try finally end 结构中,会先释放窗体,再访问窗体对象时,这个对象不存在了!
finally
frmTEST.Free;
end;

end;

热点排行