J
JJHotWind
Unregistered / Unconfirmed
GUEST, unregistred user!
我用DLL Wizard生成一个默认的DLL项目,添加一个窗体和一个Unit并在Unit中导入
窗体的头文件后后,在外部程序(也是用C++Builder写的)中通过静态访问Unit的函数可
以访问到窗体,但只要窗体包含ADO控件(如ADOConnection或ADOQuery),我的函数就老
是要报错,错误信息为EOleSysError的“没有调用CoInitialize”。只要窗体不包含ADO
控件,就一切正常,可是我的DLL是一定要访问数据库的呀!而且,我也很不愿意用BDE或
别的什么方法来替代ADO。请教各位专家,这个问题该怎么解决呢?
DLL中新建Unit的代码如:
.H文件中:
void __export TryADO();
.CPP文件中:
void __export TryADO()
{
//假定窗体的name是Form2。
Form2 = new TForm2(Application);
//这儿是窗体上一些控件的初始化代码,是不是要对ADO控件做些什么呢?
Form2->ShowModal();
//好像就错在这儿。
delete Form2;
}
在下区区菜鸟,为了这个问题已经被老板威逼了100遍了!请各位大富翁、小富翁、不
大不小中富翁看在在下以高分相送的情面上,能体察在下对各位如滔滔江水连绵不绝,又
好似黄河泛滥,一发而不可收拾的敬仰之情!
请各位无论是砖头是玉,尽管往这里砸吧!
拜托啦!
窗体的头文件后后,在外部程序(也是用C++Builder写的)中通过静态访问Unit的函数可
以访问到窗体,但只要窗体包含ADO控件(如ADOConnection或ADOQuery),我的函数就老
是要报错,错误信息为EOleSysError的“没有调用CoInitialize”。只要窗体不包含ADO
控件,就一切正常,可是我的DLL是一定要访问数据库的呀!而且,我也很不愿意用BDE或
别的什么方法来替代ADO。请教各位专家,这个问题该怎么解决呢?
DLL中新建Unit的代码如:
.H文件中:
void __export TryADO();
.CPP文件中:
void __export TryADO()
{
//假定窗体的name是Form2。
Form2 = new TForm2(Application);
//这儿是窗体上一些控件的初始化代码,是不是要对ADO控件做些什么呢?
Form2->ShowModal();
//好像就错在这儿。
delete Form2;
}
在下区区菜鸟,为了这个问题已经被老板威逼了100遍了!请各位大富翁、小富翁、不
大不小中富翁看在在下以高分相送的情面上,能体察在下对各位如滔滔江水连绵不绝,又
好似黄河泛滥,一发而不可收拾的敬仰之情!
请各位无论是砖头是玉,尽管往这里砸吧!
拜托啦!