调用dll中的函数中stdcall和cdecl的问题
我需要调用一个dll中的函数,dll的接口文档里说明了是stdcall的调用约定。
而我再vc++中调用的时候,声明函数中加上stdcall,在运行的时候会出现下面一段信息:
The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.
而我在声明中不加stdcall,就不会出现上面的信息,函数调用正常。
查看下网上的一些资料,没有看出个所以然。
请高手解释下为什么加上stdcall会出现这段信息?
如果不加的话,会不会有什么影响?如果我想加上stdcall的话,需要在调用的时候怎么弄(不能修改dll)?
另,dll导出的函数是直接一个函数名,比如:add,没有像网上有些描述的有_或者@