pro * c dll在从不同客户端调用时失败

时间:2014-09-02 09:29:12

标签: dll oracle11g crash proc mql4

我遇到了一个奇怪的行为,我写的是通过Pro * C访问Oracle DB的DLL函数;具体来说,当我从MQL4调用它时,它工作正常,而当从C客户端调用时,它会在特定行崩溃。

崩溃原因说" GAClient.exe中的0x61428C74(oranls11.dll)处理未处理的异常:0xC0000005:访问冲突写入位置0x00E368EC。"

我在Windows 8 64位上使用Visual Studio 2010,但开发环境设置为构建32位DLL。 经过几天的调试,我得出以下结论: - 调用EXEC SQL FETCH时发生崩溃。光标打开很好。 - 传递给DLL函数的所有参数都使用完全相同的值到达崩溃点,因为我可以从一系列fprintf()命令中收集这些参数。对于用于获取的变量,这也是(尤其如此)。 - Oracle会话跟踪文件几乎完全相同,显然Fetch也是成功的 - 两个客户端(MT4.exe和GAClient.exe)都是从命令提示符执行的,具有相同的环境变量集(PATH,ORACLE_HOME等)

我甚至不确定哪个代码片段在此阶段发布会有用;如果有人知道从哪里开始解决这个问题,我非常乐意与大家分享。

0 个答案:

没有答案
相关问题