dll中定义
extern "C" __declspec(dllexport) double __stdcall Calculate(
char *expression,double *parameter, char *ParaName,
int size, int &error);
调用定义
typedef double (WINAPI Calculate)(char *,double *,char *, int,int&);
Calculate *pCalculate;引用
VERIFY(m_hInstance=::LoadLibrary("Calculate.dll"));
VERIFY(pCalculate=(Calculate*)::GetProcAddress(m_hInstance,"Calculate"));在这里出现错误,不能引出dll函数。但如果dll中函数定义改为
extern "C" __declspec(dllexport) double Calculate(
char *expression,double *parameter, char *ParaName,
int size, int &error);
去掉__stdcall,运行正常。为什么?我必须要用__stdcall,因为dll要有Dephi调用
extern "C" __declspec(dllexport) double __stdcall Calculate(
char *expression,double *parameter, char *ParaName,
int size, int &error);
调用定义
typedef double (WINAPI Calculate)(char *,double *,char *, int,int&);
Calculate *pCalculate;引用
VERIFY(m_hInstance=::LoadLibrary("Calculate.dll"));
VERIFY(pCalculate=(Calculate*)::GetProcAddress(m_hInstance,"Calculate"));在这里出现错误,不能引出dll函数。但如果dll中函数定义改为
extern "C" __declspec(dllexport) double Calculate(
char *expression,double *parameter, char *ParaName,
int size, int &error);
去掉__stdcall,运行正常。为什么?我必须要用__stdcall,因为dll要有Dephi调用
解决方案 »
- 向大家请教一下足球视频中的图像纹理的分析
- 我问下各位大人, 为什么用CInternetSession::OpenURL却得不到网页的全部源代码呀?
- COM原理与应用的源代码(潘爱民),谁有的话请发一份给我,谢谢 [email protected]
- 什么是用图像采集卡开发图像监控系统?
- 寻找一个播放dvd的源码。
- 100分~刚学VC不久~,想找个比较有时间的人教我一下
- 利用socket如何实现一方传送16进制数,另一方接收的也16进制数?
- 一个高难度的问题,特急!
- 求助用GetGlyphOutline取不出 '楷体_GB2312' 中 '螣' 这个字的轮廓信息!!
- 为什么给进度条控件设置颜色没有效果
- 请教桌面共享的问题!!!:)
- 关于打印的问题
你说的我也看过,关键是不能引出dll函数。
dll函数要用__stdcall调用才能由其他语言调用。我的dll是用VC做的,测试TestDll也是用VC做的。
dll函数用__stdcall,测试的TestDll就不能引出dll函数。如果dll函数没有用__stdcall,使用C的__cdecl,测试的TestDll就可以引出dll函数。
delphi默认调用约定是_stdcall
同样的调用约定就没问提
发现pCalculate=0x00000000;
是这里就有问题了。
用__cdecl就没有问题。我觉得是没有找到dll中函数名.
dumpbin your.dll
看是否dll中有这样的入口地址表