调用DLL中的函数多次会不会产生一些错误
调用DLL中的函数多次会不会产生一些异常?
typedef int (FAR __cdecl *RecogniseChess)(int x,int y,BYTE *p_data);
RecogniseChess recChess;
recChess = (RecogniseChess)GetProcAddress(h_Recognise, "RecogniseChess ");
int x = recChess(X,Y,p_data);
我这里是做了一个DLL文件,这里调用的是里面的RecogniseChess 函数,理论上是只使用int x = recChess(X,Y,p_data);一句就好了,但上面的四句反复地调用会不会产生类似数据混乱的异常情况?
------解决方案--------------------
不会产生异常的,只是不停的加载,释放dll会在效率上有点牺牲.
其实你可以使用另一种方式加载dll.把头文件和Lib文件都加载进去,这样就没必要动态获取dll的函数地址了,编译器和pe加载器会帮你搞定一切的.
typedef int (FAR __cdecl *RecogniseChess)(int x,int y,BYTE *p_data);
RecogniseChess recChess;
recChess = (RecogniseChess)GetProcAddress(h_Recognise, "RecogniseChess ");
int x = recChess(X,Y,p_data);
我这里是做了一个DLL文件,这里调用的是里面的RecogniseChess 函数,理论上是只使用int x = recChess(X,Y,p_data);一句就好了,但上面的四句反复地调用会不会产生类似数据混乱的异常情况?
------解决方案--------------------
不会产生异常的,只是不停的加载,释放dll会在效率上有点牺牲.
其实你可以使用另一种方式加载dll.把头文件和Lib文件都加载进去,这样就没必要动态获取dll的函数地址了,编译器和pe加载器会帮你搞定一切的.