由于工作需要,在程序中调用了其它公司提供的动态库,当使用动态调用时没有问题,如果改为静态调用,当程序退出时就会出现“程序.exe faulted with message:'access violation as 0x000000100 : read of address 0x000000100'.process stopped.uses step or run to continue”
已经试过很多方法修改我的程序都没有解决,请问这是我的问题还是动态库编写的问题?
已经试过很多方法修改我的程序都没有解决,请问这是我的问题还是动态库编写的问题?
一些库的初始化的东东都在 dllmain 里面执行了。只有动态的调用才能正确使用。如果得不到动态库的源代码和使用文档,动态调用是最保险的
能不能在我的程序退出前执行一些代码,使其不出现错误提示?
有错误最好不要隐藏。
如果你知道动态库的执行过程,可以在开始的时候执行初始化代码,退出的时候执行释放代码。如果动态调用和静态调用都可以的话,可以根据个人喜好。
这些DLL是需要频繁调用的跟动态调用和静态调用没有关系,动态调用载入一次也是可以的。
代码也不会太多,静态调用你需要写函数声明的头文件跟你写一个函数指针的头文件区别不大。
等待散分
http://www.practiline.com/download/midas.zip
int FunctionName ( char * Sname, Char* DataBuffer )
其中DataBuffer是传出参数,用动态调用的方法传入PChar类型的变量结果还是出错,请各位帮我分析一下问题可能出在哪里。我先调用了DataBuffer := StrAlloc(2000*Sizeof(Char)),可是无论有没有这一行都不行。