使用嵌入的dll作为资源启动程序时出现问题

Pet*_*ner 4 delphi dll embedded-resource

我已经完成了在Delphi EXE中嵌入dll的About.com指南,这似乎有效,只要我实际上不使用DLL作为外部函数.无论如何,让我链接的代码比uses子句中引用的单元更早地工作.
我试过了:

  • 正是这个代码所说的.
  • 将此代码放在使用使用外部函数的单元的窗体的初始化部分中.
  • 将此代码放在使用外部函数的单元的初始化部分中.

通过外部函数,我指的是一个看起来像这样的函数:

function MyFunction: Integer; stdcall; external 'fundll.dll';
Run Code Online (Sandbox Code Playgroud)

我得到的问题是通常的'fundll.dll'无法加载(因为它不在目录中).当代码到达那么远时,Zarko的代码工作(相当甜,它在该文件夹中创建了dll).但是当我使用我需要的外部功能时,它只是在项目开始滚动之前就崩溃了.

mgh*_*hie 6

您无法使用外部函数执行此操作 - 在提取DLL后使用LoadLibrary()GetProcAddress(),一切都应该有效.

原因是任何代码只有在OS加载程序解析完所有入口点后才会执行.如果你愿意,有种鸡和蛋的问题.