有关DLL的三个简单问题,每个50!(100分)

  • 主题发起人 主题发起人 TeaGuy
  • 开始时间 开始时间
T

TeaGuy

Unregistered / Unconfirmed
GUEST, unregistred user!
首先我碰到的这个问题是:在<DELPHI 3从入门到精通>中一个例子,
第一个,把图标(ICO)的RES文件放在DLL工程中编译,要的时候从DLL中装载.但是我发现程序无效。
它使用的方法是loadlibrary,将得到的句柄传递给loadIcon.我试了几次,编译可以通过,
但是调用无效。何故?
另一个,我想把JPG资源放在DLL中,要的时候再从中装载,开始也是用LOADLIBRARY
得到句柄,再将它传递给TResourceStram.CreateFromID中的一个参数。但也是发现这个问题。
有关JPG的使用没有问题。因为该资源如果放在EXE文件中则可以正常装载。
第三个,我用DLL向外部输出启动窗体。办法是在一个函数中包括了窗体的动态创建,显示,
等待几秒后再释放。该DLL中DELPHI中可以正常调用与释放。但是在WIN2K/WORD2000
的VBA中调用此函数则出现内存错误,无法正常释放。又是何故?

以下问题每个50分。刚刚入大富翁论坛,手头没有多少分,请原谅。
 
1。LoadIcon的第二个参数LPCTSTR lpIconName ,必须在一个文件中,
在Exe中只能查找exe中的,如果确实要在DLL中装入,可以先在DLL中
装入Icon,通过调用函数的方法,使各个程序共享。

2。既然第二个问题和第一个相似,解决方法也差不多吧。

3。待答。
 
呜呜...
没人想得分!
 
不好意思,今天刚试验了一下,你的方法完全可以,你看看是不是LoadIcon的第二个参数
没有写对。我是用C++builder写的。
 
你建的icon资源如果是整数id,那么loadicon的第2各参数
应该是 PChar(你的id的整数值)

你用word的vba调用此dll,则不要使用string类型,特别不能作为
函数的参数类型。应该用 PChar 类型。
 
虽然没有完满的答案,最近已经没有时间关注这个问题了,分数还是发了吧。
谢谢毛虎林与Pipi大侠。
 
后退
顶部