有一个JJ.dll是用vc++写的其 .h 文件如下:
#ifndef _SE_TARIFF_H_
#define _SE_TARIFF_H_#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus *//////////////////////////////////////////////////////////////////////////////
struct UVeData {
TCHAR jdcbh[13];
TCHAR djzsh[16];
TCHAR hphm[16];
TCHAR hpzl[3];
TCHAR zzg[4];
TCHAR zzcmc[41];
TCHAR gcjk[2];
TCHAR ppzwm[33];
TCHAR xh[33];
TCHAR ppywm[33];
TCHAR error[1024];
};/////////////////////////////////////////////////////////////////////////////
struct UDrData {
TCHAR dabh[11];
TCHAR xm[21];
TCHAR xb[3];
TCHAR csrq[11];
TCHAR sfzjlx[15];
TCHAR sfzhm[19];
TCHAR qtzjhm[41];
TCHAR gj[21];
TCHAR error[1024];
};/////////////////////////////////////////////////////////////////////////////
#define _SJDM_XCDJ_ 1
#define _SJDM_NJDJ_ 2
#define _SJDM_HPDJ_ 3
#define _SJDM_BGDJ_ 4
#define _SJDM_GHDJ_ 5
#define _SJDM_NSDJ_ 50
struct UEventData {
BYTE sjdm;
TCHAR sjrq[11];
TCHAR sjms[1024];
TCHAR error[1024];
};/////////////////////////////////////////////////////////////////////////////
//extern int FAR PASCAL WEP(int nParam);extern BOOL APIENTRY VeData(HWND hWnd, LPCTSTR hpzl, LPCTSTR hphm, UVeData *pdata);
extern BOOL APIENTRY DrData(HWND hWnd, LPCTSTR dabh, LPCTSTR sfzh, UDrData *pdata);
extern int APIENTRY EventData(HWND hWnd, LPCTSTR xh, BYTE sjdm, UEventData *pdata);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */#endif // _SE_TARIFF_H_
在delphi中如何动态和静态的调用这三个函数,请各位大侠指教!!!!!!!!
#ifndef _SE_TARIFF_H_
#define _SE_TARIFF_H_#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus *//////////////////////////////////////////////////////////////////////////////
struct UVeData {
TCHAR jdcbh[13];
TCHAR djzsh[16];
TCHAR hphm[16];
TCHAR hpzl[3];
TCHAR zzg[4];
TCHAR zzcmc[41];
TCHAR gcjk[2];
TCHAR ppzwm[33];
TCHAR xh[33];
TCHAR ppywm[33];
TCHAR error[1024];
};/////////////////////////////////////////////////////////////////////////////
struct UDrData {
TCHAR dabh[11];
TCHAR xm[21];
TCHAR xb[3];
TCHAR csrq[11];
TCHAR sfzjlx[15];
TCHAR sfzhm[19];
TCHAR qtzjhm[41];
TCHAR gj[21];
TCHAR error[1024];
};/////////////////////////////////////////////////////////////////////////////
#define _SJDM_XCDJ_ 1
#define _SJDM_NJDJ_ 2
#define _SJDM_HPDJ_ 3
#define _SJDM_BGDJ_ 4
#define _SJDM_GHDJ_ 5
#define _SJDM_NSDJ_ 50
struct UEventData {
BYTE sjdm;
TCHAR sjrq[11];
TCHAR sjms[1024];
TCHAR error[1024];
};/////////////////////////////////////////////////////////////////////////////
//extern int FAR PASCAL WEP(int nParam);extern BOOL APIENTRY VeData(HWND hWnd, LPCTSTR hpzl, LPCTSTR hphm, UVeData *pdata);
extern BOOL APIENTRY DrData(HWND hWnd, LPCTSTR dabh, LPCTSTR sfzh, UDrData *pdata);
extern int APIENTRY EventData(HWND hWnd, LPCTSTR xh, BYTE sjdm, UEventData *pdata);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */#endif // _SE_TARIFF_H_
在delphi中如何动态和静态的调用这三个函数,请各位大侠指教!!!!!!!!
解决方案 »
- 帮我看看这段代码为什么会内存自增?
- 有關DataSourceDataChange 事件
- 小问题:怎样得到一个目录下的所有文件名?
- Delphi+Oracle开发超'基础'问题~~怎样配置环境!
- 关于MediaPlayer中的trackbar滑块移动的问题,help me
- 如何判断Treeview1.Selected是主节点还是子节点
- 关于 serverSocket 去断 clientSocket 的问题
- webbrowser,为什么DBGrid无法获得焦点
- delphi创建数据库出错,创建表也是这个错误,请高手解决下
- 倾情奉献:如何在Delphi中快速制做累似于NeoPlanet的窗体(高级A).
- 请教:这种通讯方式的程序如何实现?
- TclientDataSet控件的datatype为ftDataSet,在程序中怎么取它的值?????高手救命啊
把.h文件翻译成.pas用
LoadLibrar取得句柄,判断取得是否为空,然后GetProcAddress取得你要调用的函数地址,使用结束后在FreeLibrary,具体的看API帮助,思路都是这样的,书店里的书都有介绍怎么用的
PUVeData = ^UVeData;
UVeData = packed record
jdcbh: string[13];
djzsh: string[16];
hphm: string[16];
hpzl: string[3];
zzg: string[4];
zzcmc: string[41];
gcjk: string[2];
ppzwm: string[33];
xh: string[33];
ppywm: string[33];
error: string[1024]; //?????
end;error的数组定义超过了255,这已经超过了ShortString的范围了,如果能把TChar 改为
Char *指针就好办多了。