我的应用程序工作正常... 移植它以实现为DLL。 我有一个数据模块,上面有我的数据库和TTable组件...... 在“设计”模式下,“数据库”设置为“活动”。 表指向数据库,它们设置为活动状态。 我可以右键单击表格,进入字段编辑器,查看所有列,所以我知道结构/属性设置正常....
问题出在运行时...... 它在这条线上给了我AV ...
if MyDataModule.DB1.Connected = True then
ShowMessage('Active')
else
ShowMessage('Not Active');
我在网上看到一些提示,在DLL中使用Datamodule需要做一些特殊工作,但我没有任何工作。
具体的错误信息是:
模块'DocAssistCom.dll'中地址06D4E22E的访问冲突读取地址0000070'
答案 0 :(得分:4)
您应该验证确实已创建MyDaModule
,然后在尝试使用MyDataModule.DB1
之前创建MyDataModule.DB1.Connected
。
if Assigned(MyDataModule) then
if Assigned(MyDataModule.DB1) then
if MyDataModule.DB1.Connected = True then
ShowMessage('Active')
else
ShowMessage('Not Active')
else
ShowMessage('MyDataModule.DB1 not assigned')
else
ShowMessage('MyDataModule not assigned');
但是当您尝试使用它们时,它们可能仍未完全创建并准备就绪。
因此,我宁愿使用ShowMessage
和在IDE中调试DLL 来查看代码路径,而不是传播OutputDebugstring
次调用...
注意:强> 我不知道你使用的是哪个版本的Delphi和Windows,但要注意TTable需要BDE(现在已经很不推荐了)......