错误信息: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 converntion with a function pointer declared with a diffferent calling conventionDELPHI的DLL声明如下:
function FindMin(numA : PChar; numB :PChar):PChar ;StdCallimplementationfunction FindMin; external 'PENNIESLIB.DLL' name 'FindMin';
VC调用如下:
#define DllExport __declspec(dllimport) _stdcall
extern "C" char * DllExport FindMin(char * numA,char * numB);
....
VERIFY(hIn=::LoadLibrary("PenniesLib.dll"));
VERIFY(p_Result=(MINTYPE*)::GetProcAddress((HMODULE)hIn, "FindMin")); i_return=(*p_Result)("ss","dd"); //错误信息就在这一行出现!这个问题几天了都有没有解决?
VC能调用DELHPI写DLL的吗?调用过的请帮帮吧!
解决方案 »
- CSDN给我的中秋福利,大家快来围观!
- 菜鸟求用户界面的学习材料
- 怎样用程序往记算器的文本框里填上数字
- 请问如果用钩子修改应用程序的界面,有哪些地方需要注意的?
- 大家的第一次跳槽是在工作多长时间以后的事情呢???
- 求教:如何设置CListCtr,使得各行或各列有不同的字符颜色和底色
- 哪里可以找到vc++的英文原版连同中文的书
- 关于CBitmapButton的问题
- 学VC,我究竟该从哪里入手呢?
- MFC基于对话框编程,怎么实现子对话框在编辑框输入的数据,显示在主对话框界面上?
- 关于 “无法对DAO/Jet db引擎进行初始化”的提示,请各位大虾帮忙!!!急急急,在线等待
- 如何获取机器硬件厂商信息?
VERIFY(p_Result=::GetProcAddress((HMODULE)hIn, "FindMin"));i_return=p_Result("ss","dd");
DllExport char* __stdcall FindMin(char * numA,char * numB); 有没有用呢,这些参数的顺序会不会对执行有所影响??关注!
我看楼主声明了
extern "C" char * DllExport FindMin(char * numA,char * numB);又用了LoadLibary和GetProcAddress,不知是何用意。
同时MINTYPE的声明没有给出,问题很可能出现在这里。不知道MINTYPE是宏还是用typedef定义的一个类型,最好检查一下MINTYPE的定义。如果在其中用了其它类型的calling convention当然就会出错。
在你的提示下程序调试过了,
结帐!
//
// __stdcall 这里的问题