我在一个程序里调用了两个dll,一个用来三维作图,采用MFC的regular dll,叫做3dDraw.dll。一个用来计算太阳当天的位置,采用Fortran制成的dll,叫做sunpos.dll。所以我在project的setting里link了3dDraw.lib和sunpos.lib两个库文件。在程序里声明两个函数:
extern "C" void DrawSun(); //存在3dDraw.dll文件中
extern "C" void SunPos(); //存在sunpos.dll文件中但是在运行的过程中运行到DrawSun()函数中就会出现0xC0000008E:float divide by zero的错误。如果我要是在程序中使用LoadLibrary()来动态调用SunPos()的话就可以运行正常。请问,在静态调用两个dll时,是不是有什么注意事项?尤其是两种不同的语言所写的dll.问题出在什么地方呢?