双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

在Dll中直接导出窗体类失败

无理蛇 无理蛇 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在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类,也是一样的错误。

请问各位大虾,是什么问题
...全文

相关推荐

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使用方法

mingtianyi

易语言源码易语言ACCESS对象导入与导出XML模块源码

易语言源码易语言ACCESS对象导入与导出XML模块源码

zz_ll9023one
评论 7
收藏 已收藏
分享
返回顶部