只有一个dll文件(dephi写的TEST.DLL),没有相应的.h和.lib文件,用动态链接的方法链接dll
代码
double t=0;
double p=17.5;
int irange=0;
typedef int(*pP2T)(double p,double* t,int* r );
HINSTANCE hDLL;
pP2T P2T;
hDLL=LoadLibrary("WASP.dll");//加载动态链接库.dll文件;
P2T=(pP2T)GetProcAddress(hDLL,"P2T");
P2T(p,&t,&irange);
FreeLibrary(hDLL);//卸载.dll文件;
在VB中调用是正常的,但在VC中无法编译通过,在P2T(p,&t,&irange)处发生异常。
P2T函数在VB中的声明是这样的:
Private Declare Sub P2T Lib "TEST.dll" (ByVal P As Double, ByRef T As Double, ByRef R As Integer)
P2T函数在DEPHI中的声明是这样的:
Procedure P2T(Const P:Double;Var T:Double;Var R:Integer);StdCall;External 'TEST.DLL';
代码
double t=0;
double p=17.5;
int irange=0;
typedef int(*pP2T)(double p,double* t,int* r );
HINSTANCE hDLL;
pP2T P2T;
hDLL=LoadLibrary("WASP.dll");//加载动态链接库.dll文件;
P2T=(pP2T)GetProcAddress(hDLL,"P2T");
P2T(p,&t,&irange);
FreeLibrary(hDLL);//卸载.dll文件;
在VB中调用是正常的,但在VC中无法编译通过,在P2T(p,&t,&irange)处发生异常。
P2T函数在VB中的声明是这样的:
Private Declare Sub P2T Lib "TEST.dll" (ByVal P As Double, ByRef T As Double, ByRef R As Integer)
P2T函数在DEPHI中的声明是这样的:
Procedure P2T(Const P:Double;Var T:Double;Var R:Integer);StdCall;External 'TEST.DLL';
解决方案 »
- 如何给创建出来的CPrintDialog增加PD_NOPAGENUMS属性
- 对象关闭时 不允许操作 的问题
- 要重载CTreeView的OnClick事件要怎么做?
- 怎么用MFC中的TAB控件啊!!!!!!!
- CListCtrl中如何设置一列全为选择框?如何设置或取得一行的选择框的状态?
- 熟悉mfc+dx和熟悉sdk+dx那个会用的时间长一些?
- 高手指点,给介绍几本学习VC的好书!!!
- 一个非常容易的问题
- WSAGetLastError返回结果10053
- Help Workshop的问题
- 简单问题:要在console程序中使用AfxMessageBox需要包含什么头文件?
- [长篇]小说(续) 精彩无须等待
typedef int(_stdcall *pP2T)(double p,double* t,int* r );就OK
delphi里面这样写:
function ST_TestShow(AHandle: THandle; ACaption: String):BOOL; StdCall;
exports
ST_TestShow;