[阅读: 611] 2005-06-10 07:55:10
C++Builder中没有象Delphi那样直接提供MidasLib.dcu供直接静态链接,所以Delphi用的办法行不通。
DBExpress的几个驱动(Oracle,DB2,MySql)倒是提供了静态链接的Lib库,而且这些Lib本身就静态链接了Midas的库,就是说,如果你的程序链接了这些静态库,就也有了Midas的支持,可以不要Midas.dll了,当然,还有用注册函数注册一下:
RegisterDbXpressLib(::getSQLDriver×××);//XXX就是MYSQL/INTERBASE等具体的库名
RegisterMidasLib(::DllGetDataSnapClassObject);
其中两个注册函数在 <sqlexpr.hpp>中
当然还要包含相关库的头文件,如#include <dbxdsnmys.h> //MySql
有意思的是Borland虽然在Readme文件中提到了这种做法,但示例的第二个注册函数参数是错的:RegisterMidasLib(::DllGetClassObject);,DllGetClassObject仍是Midas.dll中的函数,DllGetDataSnapClassObject才是驱动库中的函数。
还有要注意的是在要任何Midas的控件、代码执行之前注册这两项,否则系统仍会查找Midas.dll,所以最好把注册代码放在WinMain中。
我链接时选择的是MySQL的驱动,原因无它,只因它比其它几个库小上几十K :)
Note:不知为什么有时会报告RegisterDbXpressLib无法链接的错误,暂时通过编译sqlexpr.pas生成Obj文件进行链接解决。
http://wangzw.wordpress.com/
个性化台历、日历制作
http://shop33697570.taobao.com/
