含窗体的DLL中的窗体显示问题?(急用在线等)(100分)

  • 主题发起人 主题发起人 wahaha2000
  • 开始时间 开始时间
W

wahaha2000

Unregistered / Unconfirmed
GUEST, unregistred user!
我用c++builder写了一个带窗体的导出函数
extern "C" __declspec(dllexport) bool __stdcall Login(char cname[255],char cpass[255])
{
//OleInitialize(NULL);
uname=cname;
upass=cpass;
try
{
Form1=new TForm1(Form1);

}
catch(...)
{
ShowMessage("创建窗体失败");
return false;
}
//其他代码
}
这样的话一般情况没有什么问题,但在有的机子上总是抱错“创建窗体失败”
请问是什么原因
我看了一个别人的源码他在Form1=new TForm1(Form1);之前有一段
OleInitialize(NULL);
这句话是什么意思,和窗体显示是否有关?
我把他放到我程序里来编译的时候就会抱错OleInitialize未定义!但他的程序却能正常编译是怎么回事?请高手指点。。。。
 
为什么大多数时候都能成功Form1=new TForm1(Form1);
但在个别机子上就不可以呢?我用循环创建了100次都不行!是程序问题还是系统问题?
 
你把null改为nil,应该可以了。
 
在,uses中加activex,如不行就把null改为nil。我试了,可以。

OleInitialize QuickInfo
The OleInitialize function initializes the OLE library. You must initialize the library before you can call OLE functions.
HRESULT OleInitialize(
LPVOID pvReserved //Reserved, must be NULL
);
Parameter
pvReserved
In 32-bit OLE, this parameter must be NULL. The 32-bit version of OLEdo
es not support applications replacing OLE's allocator and if the parameter is not NULL, OleInitialize returns E_INVALIDARG.
Return Values
 
后退
顶部