我有一款运行良好的应用程序..。将其移植为DLL。我有一个数据表,上面有我的数据库和TTable组件.在设计模式中,数据库被设置为Active。表指向数据库,它们被设置为active。我可以右键单击表,转到字段编辑器,查看所有列,因此我知道结构/属性设置得很好.
问题是在运行时间..。它给了我这条线上的AV。
if MyDataModule.DB1.Connected = True then
ShowMessage('Active')
else
ShowMessage('Not Active');我在网络上看到了一些提示,需要做一些特殊的事情来使用DLL中的Datamodule,但是我没有得到任何有用的东西。
具体的错误信息是:
地址06D4E22E在模块‘
’读取地址0000070'
中的DocAssistCom.dll访问冲突
发布于 2011-12-08 18:54:38
您应该验证是否确实创建了MyDaModule,然后在尝试使用MyDataModule.DB1.Connected之前也创建了MyDataModule.DB1。
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调用,我宁愿使用OutputDebugstring和调试IDE中的DLL来查看代码路径.
注意:我不知道您正在使用的Delphi和Windows的哪个版本,但是请注意,TTable需要BDE (现在非常不推荐).
https://stackoverflow.com/questions/8435444
复制相似问题