在Dll中直接导出窗体类失败
在BCB 2007中创建一个Dll, (VCL+多线程), 加入一个窗体,加入__declspec( dllexport),让其输出
#ifndef Unit5H
#define Unit5H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class __declspec( dllexport) TForm5 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm5(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm5 *Form5;
//---------------------------------------------------------------------------
#endif
编译都没有问题,但在应用程序调这个Dll时,New一个对象的时候提示地址访问出错.
TForm5 *frmTemp = TForm5(NULL);
同时,输出线程类也是一样,就是一个线程类继承自TThread类,也是一样的错误。
请问各位大虾,是什么问题
#ifndef Unit5H
#define Unit5H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class __declspec( dllexport) TForm5 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm5(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm5 *Form5;
//---------------------------------------------------------------------------
#endif
编译都没有问题,但在应用程序调这个Dll时,New一个对象的时候提示地址访问出错.
TForm5 *frmTemp = TForm5(NULL);
同时,输出线程类也是一样,就是一个线程类继承自TThread类,也是一样的错误。
请问各位大虾,是什么问题
...全文
相关推荐
DLL中的窗体和主程序互相通信示例.rar
DLL中的窗体和主程序互相通信示例,展示主程序与DLL之间的通信功能,很简单的delphi代码,仅供参考
Delphi动态库封装与调用窗体实战实例
动态链接库(Dynamic Link Library,简称 DLL)是 Windows 平台下实现代码共享与模块化开发的重要机制。它允许将可执行代码、资源和数据封装为独立的模块,供多个应用程序在运行时动态调用,从而提高代码复用率与系统维护效率。在 Delphi 开发环境中,结合 DLL 技术对窗体进行封装调用,能够实现界面与逻辑的解耦,增强系统的扩展性与可维护性。通过将窗体封装在 DLL 中,主程序可以在运行时按需加载并显示窗体,达到插件式架构的效果。
Delphi实现带窗体的DLL注入与Hook技术实战项目
为了让外部程序调用DLL中的功能,必须通过exports关键字导出函数,并明确指定调用约定。Windows API普遍采用stdcall,故推荐统一使用该约定以避免堆栈失衡。添加如下函数至DLL主文件:var// 导出函数:显示窗体stdcall;begintrybeginForm1.Caption := '来自DLL的窗体';end;Form1.Show;except。
Delphi 调用DLL文件中的FORM
Delphi 调用DLL文件中的FORM 有form的dll使用方法
易语言源码易语言ACCESS对象导入与导出XML模块源码
易语言源码易语言ACCESS对象导入与导出XML模块源码


VCL组件使用和开发

