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 );