高手过来看看,bcb调vc的DLL的问题.
我在BCB中向VC动态库中传了一个结构指针,这个结构包含有一个ADOCONNECTION,现在用VC写DLL,怎么才能在VC的DLL中利用这个数据库连接而不用再建立一个连接?
[解决办法]
ADOCONNECTION是VCL的类,在VC中不能用的
[解决办法]
不太可能实现的,我以前也想这么干,想用BCB做个框架,DELPHI或VC做DLL,这样就可以利用别人有的代码开发数据库了,哈哈,DELPHI还可以,但是当中还是有n多问题的,VC就不行了,因为VC没有TADOCONNECTION,不过也不是没有办法,你看TADOCONNECTION的源码,把PAS的源码用C再写一遍,弄到VC里面,肯定可以的。哈哈
[解决办法]
BCB中的TADOConnection本身就是一个对ActiveX Data Object(ADO) Connection的包装器(Wrapper),因此,通过TADOConnection有办法获得Connection的接口指针。具体做法是通过ConnectionObject属性。ConnectionObject属性返回类型为_di__Connection,基于模板类DelphiInterface定义的,DelphiInterface <Connection15> ,其实它就类似于VC中的智能指针。你可以把它转换为Connection15*类型,这就是ADO Connection的接口接针。稍改一下在传递到DLL的结构体,把其中的TADOConnection指针改为Connection15指针,在VC编写的DLL中尝试通过该接口指针访问。
没有实际验证,只是理论推测,能否完全通过,不敢妄下定论。