读书人

bcb编写dll导出函数返回form有关问题

发布时间: 2012-09-07 10:38:15 作者: rapoo

bcb编写dll,导出函数返回form问题.
我想用bcb编写一个dll, dll里面有一个form,有一个导出函数, 导出函数的返回值是form。

然后主程序动态dll的调用导出函数,获得dll里面的form。

这个思路可行否 ?

附:代码。
extern "C" __declspec(dllexport) TForm GetDllDicForm(TComponent* Owner);
TForm GetDllDicForm(TComponent* Owner)
{
TForm *LResForm = new TForm1(Owner);
return LResForm;
}

[BCC32 Error] Unit1.cpp(22): E2459 VCL style classes must be constructed using operator new
Full parser context
Unit1.cpp(20): parsing: TForm GetDllDicForm(TComponent *)

[解决办法]
TForm GetDllDicForm(TComponent* Owner);

改为

TForm* GetDllDicForm(TComponent* Owner);

不建议在dll中输出vcl类的实例,其它工具无法使用,bcb的不同版本也可能会出错。
[解决办法]
大概是这样具体你再改改
DLL中
fun(TForm **newfrm)
{
*newfrm = Form1;
}
调用---
TForm *newfrm;
fun(&newfrm );

读书人网 >C++ Builder

热点推荐