给的头文件基本如此:
#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"
--------------------
不知道怎么样去跟它定义同样的转换, 大侠们教教我啊

解决方案 »

  1.   

    是的.
    用程序调用符合标准的操作函数. 这些函数放到我的动态库中.
    而且我的动态库需要对具体设备无关. 也就是说, 不管什么型号的机具, 我要在我的库中对其提供的底层函数做调用.
    简单的说.就是我的库提供给程序诸如WriteFile()之类的函数.它是通过调用机具商的API函数实现的
    程序<-MyDll<-ApiDll.
    现在Mydll用隐式的方式调用api,再在程序中显式的调Mydll就出错. 所以我想都用显式的.所以求显式调用这个Api的方法.lfchen(一条晚起的虫)帮帮我, 这个dll用显式的方式怎么调.
    如果需要动态库请加我QQ245643292 或群16166910 或[http://www.watchdata.com/upload/CRW-V&VI.rar]下载. 即使没有机具. 调用失败也是返回-1. 而不是上面的错.
    谢谢