给的头文件基本如此:
#include <windows.h>
#ifdef __cplusplus
extern "C"{
#endif
/*----------------------------------------------------------------------------------------
一. 读卡器及CPU卡读写接口函数
1. 打开与IC卡读写器相连的设备端口 */
HANDLE WINAPI CT_open(char *name,unsigned int param1,unsigned char param2);
DWORD WINAPI GetUsbOpenMode(BYTE USBPortNo);
VOID WINAPI SetUsbOpenMode(BYTE USBPortNo,DWORD mode); /*
参数: name:与读写器相连的端口名称.
串口读卡器可取COM1 COM2 COM3 COM4等
USB读卡器可取USB1 USB2 USB3 USB4等
param1: 串口读卡器为波特率,9600、38400等
USB读卡器为打开设备的模式 1:共享模式 2:独占模式
param2: 串口读卡器为奇偶校验,可为
"O" 奇校验
"E" 偶校验
"N" 无校验
注意:无特殊要求,一般使用偶校验即可
USB读卡器未使用
返回: 小于0为打开端口失败;
大于0为成功的打开的端口描述符,用于读写卡操作函数的fd
--------------------------------------------------------------------------
用静态的方法可以用起来, 但动态的怎么去调? 这样的申明我应该怎样去定义它
问题是这样的, 我的动态库如果静态的调用这个函数, 我的程序在动态调用我的动态库时候会出错.
用常规方法去调用它,会报如下的错:
\/
/\
Debug Error!
Program: ...\ ... \debug\xxx.exe
Module:
File: i386\chkesp.c
line: 42 The value of ESP was not properly saved accross function call. This usually a result of calling function declared with one call convention with a function pointer declared with different calling convention. "about" "retry" "ignore"
--------------------
不知道怎么样去跟它定义同样的转换, 大侠们教教我啊
#include <windows.h>
#ifdef __cplusplus
extern "C"{
#endif
/*----------------------------------------------------------------------------------------
一. 读卡器及CPU卡读写接口函数
1. 打开与IC卡读写器相连的设备端口 */
HANDLE WINAPI CT_open(char *name,unsigned int param1,unsigned char param2);
DWORD WINAPI GetUsbOpenMode(BYTE USBPortNo);
VOID WINAPI SetUsbOpenMode(BYTE USBPortNo,DWORD mode); /*
参数: name:与读写器相连的端口名称.
串口读卡器可取COM1 COM2 COM3 COM4等
USB读卡器可取USB1 USB2 USB3 USB4等
param1: 串口读卡器为波特率,9600、38400等
USB读卡器为打开设备的模式 1:共享模式 2:独占模式
param2: 串口读卡器为奇偶校验,可为
"O" 奇校验
"E" 偶校验
"N" 无校验
注意:无特殊要求,一般使用偶校验即可
USB读卡器未使用
返回: 小于0为打开端口失败;
大于0为成功的打开的端口描述符,用于读写卡操作函数的fd
--------------------------------------------------------------------------
用静态的方法可以用起来, 但动态的怎么去调? 这样的申明我应该怎样去定义它
问题是这样的, 我的动态库如果静态的调用这个函数, 我的程序在动态调用我的动态库时候会出错.
用常规方法去调用它,会报如下的错:
\/
/\
Debug Error!
Program: ...\ ... \debug\xxx.exe
Module:
File: i386\chkesp.c
line: 42 The value of ESP was not properly saved accross function call. This usually a result of calling function declared with one call convention with a function pointer declared with different calling convention. "about" "retry" "ignore"
--------------------
不知道怎么样去跟它定义同样的转换, 大侠们教教我啊
用程序调用符合标准的操作函数. 这些函数放到我的动态库中.
而且我的动态库需要对具体设备无关. 也就是说, 不管什么型号的机具, 我要在我的库中对其提供的底层函数做调用.
简单的说.就是我的库提供给程序诸如WriteFile()之类的函数.它是通过调用机具商的API函数实现的
程序<-MyDll<-ApiDll.
现在Mydll用隐式的方式调用api,再在程序中显式的调Mydll就出错. 所以我想都用显式的.所以求显式调用这个Api的方法.lfchen(一条晚起的虫)帮帮我, 这个dll用显式的方式怎么调.
如果需要动态库请加我QQ245643292 或群16166910 或[http://www.watchdata.com/upload/CRW-V&VI.rar]下载. 即使没有机具. 调用失败也是返回-1. 而不是上面的错.
谢谢