日期:2014-05-17  浏览次数:20823 次

关于调用C++动态库的问题
有个C#写的winform程序, 调用动态库(C++写的)里的一个方法, 每天早上开电脑后,第一次打开这个程序,有时会调用不到 这个方法, 但关闭程序,再次打开,调用正常了。之后在这天里不管重启电脑 或 程序后,都调用正常。。。

但到了第二天早上再打开电脑,也偶尔会出现这个问题,再次打开程序,又可以调用


就是第一次调用正常, 这一天都正常, 如果第一次调用不了, 重新打开程序就可以了。 这个问题不是常出现,就偶尔出现


郁闷很久了。。不知怎么回事。。

------解决方案--------------------
按楼主的描述,有可能是这个dll依赖于某些服务或进程等初始化完成。可以让程序启动后延迟一段时间,等依赖项初始化完成后才调用
如果可改源代码的话,也可以尝试这样:程序运行,创建一文本文件。在程序或dll运行到某些关键点,及发现错误时,向这个文本文件写入相关信息。若出现问题时,翻看这个日志文件,就可知问题出现在哪或在哪两个关键点之间
------解决方案--------------------
不是说调用不成功了才去等,而是说等完了才开始尝试去调用
如果说把程序关了,然后再打开就行了的话。实在不行,就给程序自身加个守护线程,如果调用超时,程序就自重启
还有楼主有在多台电脑上尝试吗?确定和硬件软件环境无关?
------解决方案--------------------
还没碰到过,学习学习