dll中无法将.ini文件中的数据库连接信息赋给ADOConnection的ConnectionString

krakan 2004-10-10 10:45:09
这是入口函数:
extern "C" __declspec(dllexport) void _stdcall DBConnected_DLL()
{
TDataModule2 *DataModule2 = new TDataModule2(NULL);
TIniFile *ini = new TIniFile( ChangeFileExt( Application->ExeName, ".INI" ));
DataModule2->DBConnection1->ConnectionString = ini->ReadString( "Info", "DBConfigration", "" );
delete ini;
DataModule2->DBConnection1->Connected = true;
delete DataModule2;


}


单步调试的时候,发现DataModule2->DBConnection1->ConnectionString = E2195 Cannot evaluate function call
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
krakan 2004-10-11
  • 打赏
  • 举报
回复
谢谢各位,我已经解决掉了,程序本身一点问题都没有,我只是把源程序换了一个目录存放,再运行,就没有错误了,真搞不懂,bcb怎么会出现这个问题,听师兄说,J BUILDER也有这类问题!
hongwuzhao 2004-10-11
  • 打赏
  • 举报
回复
在DLL中使用Application->ExeName不当,应该使用:
GetModuleFileName(hinst, buf, sizeof(buf));
show00 2004-10-10
  • 打赏
  • 举报
回复
ConnectionString的类型是WideString,是不是和这个有关系呢?
krakan 2004-10-10
  • 打赏
  • 举报
回复
不行,我不明白的是,为什么一摸一样的程序,放到别的机器上就能正常赋值呢?
sunliwen780502 2004-10-10
  • 打赏
  • 举报
回复
入口函数的声明,应该用dllimport,delete ini;放到最后.试试.

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧