返回信息流我是初学者,正在写一个IC卡读写器程序,用的是vs2005环境IC卡读写器提供了动态链接库,包括**.h \**.dll\ **.lib三个文件,在解决方案中添加了**.h文件,**.dll文件也复制到debug目录下,**.lib也添加到项目属性中的附加依赖项,但在主程序开头加上#include "**.h"后,还未调用动态链接库的里函数,生成解决方案就出错,错误信息如下:
error C2146: 语法错误 : 缺少“;”(在标识符“OpenPort”的前面)
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
不知是哪里出了问题,请高手指点!
**.h文件内容如下:
enum myCardType
{
CT_UNKNOWN = 0,
CT_SLE4432 = 1,
CT_SLE4442 = 2,
CT_SLE4418 = 3,
CT_SLE4428 = 4,
CT_SLE4406 = 5,
CT_SLE4436 = 6,
CT_AT88SC101 = 7,
CT_AT88SC102 = 8,
CT_X76F640 = 9,
CT_AT24C01A = 10,
CT_AT24C02 = 11,
CT_AT24C04 = 12,
CT_AT24C08 = 13,
CT_AT24C16 = 14,
CT_AT24C32 = 15,
CT_AT24C64 = 16,
CT_AT24C128 = 17,
CT_AT24C256 = 18,
CT_AT24C512 = 19,
CT_AT88SC1604 = 20,
CT_AT88SC1608 = 21,
CT_AT88SC153 = 22,
CT_AT45D041 = 23,
CT_NO_CARD = 1000
};
enum myErrorCode
{
ERR_SUCCESS = 0,
ERR_NO_CARD,
ERR_TIMEOUT,
ERR_COUNTER,
ERR_PSC1,
ERR_PSC2,
ERR_FORMAT,
ERR_NOT_ENOUGH_MEMORY,
ERR_CREATE_PORT_FILE,
ERR_GET_COMM_STATE,
ERR_SET_COMM_STATE,
ERR_SET_COMM_MASK,
ERR_SET_COMM_TIMEOUTS,
ERR_CREATE_THREAD,
ERR_NULL_PORT_HANDLE,
ERR_LAST
};
//
int WINAPI OpenPort(char *PortName, int *PortHandle);
int WINAPI ClosePort( );
//
//
int WINAPI SelectPort( int PortHandle );
//
//
int WINAPI PowerOn( );
int WINAPI PowerOff( );
//
//
int WINAPI IssueCommandAndWait( char Command, char *Data );
int WINAPI IssueCommandNoWait( char Command, char *Data );
//
//
void WINAPI PackBufferBinary( char *Out, char In1, char *In2 );
//
//
int WINAPI CardPresent( );
int WINAPI CardChanged( );
int WINAPI GetCardType( char *ATRBuffer );
char * WINAPI GetCardName( int CardType );
int WINAPI ReaderVersion( );
// 4428 prototypes
//
int WINAPI Read_4428_With_PB( int StartPos, int NOB, char *Bfr, char *PB_Bfr );
int WINAPI Read_4428_NO_PB( int StartPos, int NOB, char *Bfr );
int WINAPI Write_4428( int StartPos, char DestByte, char PBSetFlag ); // PBSetFlag == 1 then set PB
int WINAPI Verify_4428_PSC( char PSC1, char PSC2 );
int WINAPI Read_4428_SM( char *SM_Bfr, char *SM_PB_Bfr ); // SM_Bfr, SM_PB_Bfr : char [ 3 ]
// 4442
//
int WINAPI Read_4442_With_PB( int StartPos, int NOB, char *Bfr, char *PB_Bfr );
int WINAPI Read_4442_NO_PB( int StartPos, int NOB, char *Bfr );
int WINAPI Read_4442_PB( char *PB_Bfr ); // bit buffer
int WINAPI Write_4442_PB( int Address ); // bit address
int WINAPI Write_4442( int StartPos, char DestByte, char PBSetFlag ); // PBSetFlag == 1 then set PB
int WINAPI Write_4442_Array( int StartPos, int NOB, char *Bfr, char *PBSetFlag );
int WINAPI Verify_4442_PSC( char PSC1, char PSC2, char PSC3 );
int WINAPI Read_4442_SM( char *SM_Bfr ); // SM_Bfr: char [ 4 ]
int WINAPI Write_4442_SM( int SMAddress, char SMByte );
// 88sc102
//
int WINAPI Read_102_Bit( int StartBitAddress, int NOBit, char *Data );
int WINAPI Write_102_Bit( int StartBitAddress, int NOBit, char *Data );
int WINAPI Read_102_Byte( int ByteAddress, char *Data );
int WINAPI Write_102_Byte( int ByteAddress, char Data );
int WINAPI Read_102_Byte_Array( int ByteAddress, int NOB, char *Data );
int WINAPI Write_102_Byte_Array( int ByteAddress, int NOB, char *Data );
int WINAPI Read_102_Word( int WordAddress, char *Data );
int WINAPI Write_102_Word( int WordAddress, char *Data );
int WINAPI Erase_102_Word( int WordAddress );
int WINAPI Erase_102_Word_Array( int WordAddress, int WordCount );
int WINAPI Verify_102_SC( char *SCArray );
int WINAPI Verify_102_EZ1( char *EZ1Array );
int WINAPI Verify_102_EZ2( char *EZ2Array );
int WINAPI Erase_102_Global( );
int WINAPI Erase_102_AZ1( char *EZArray );
int WINAPI Erase_102_AZ2( char *EZArray );
int WINAPI Erase_102_AZ2_EC( char *EZArray );
int WINAPI Fuse_High_102( );
int WINAPI Fuse_Low_102( );
int WINAPI Blow_Manufacturer_Fuse_102( );
int WINAPI Blow_EC2EN_Fuse_102( );
int WINAPI Blow_Issuer_Fuse_102( );
// 4406
int WINAPI Read_4406( char *Data );
//
int WINAPI Read_4436( char *Data );
// X76F640
int WINAPI Read_X76F640( char *Data );
// AT24C01A/02
int WINAPI Read_AT24C01A( int Address, int NOB, char *Data );
int WINAPI Write_AT24C01A_Byte( int Address, char Data );
int WINAPI Write_AT24C01A_Page( int Address, int NOB, char *Data );
// AT24C04/08/16
int WINAPI Read_AT24C16( int Address, int NOB, char *Data );
int WINAPI Write_AT24C16_Byte( int Address, char Data );
int WINAPI Write_AT24C16_Page( int Address, int NOB, char *Data );
// AT24C32/64
int WINAPI Read_AT24C64( int Address, int NOB, char *Data );
int WINAPI Write_AT24C64_Byte( int Address, char Data );
int WINAPI Write_AT24C64_Page( int Address, int NOB, char *Data );
// AT24C128/256
int WINAPI Read_AT24C256( int Address, int NOB, char *Data );
int WINAPI Write_AT24C256_Byte( int Address, char Data );
int WINAPI Write_AT24C256_Page( int Address, int NOB, char *Data );
//AT88SC1608
int WINAPI Select_1608_User_Zone( int ZoneAddr ); // ZoneAddr = 0 - 8
int WINAPI Read_1608_User_Zone( int ByteAddr, int NOB, char *Data );
int WINAPI Write_1608_User_Zone( int ByteAddr, int NOB, char *Data );
int WINAPI Read_1608_Configuration( int ByteAddr, int NOB, char *Data );
int WINAPI Write_1608_Configuration( int ByteAddr, int NOB, char *Data );
int WINAPI Read_1608_Fuses( char *Fuses );
int WINAPI Write_1608_Fuses( );
int WINAPI Verify_1608_Password( int ReadWrite, int SetNumber, char *Password );
int WINAPI Init_1608_Authentication( char *Q0 );
int WINAPI Verify_1608_Authentication( char *Q1 );
int WINAPI Compute_Challenge( char *Q0, char *GC, char *Ci, char *Q1, char *Q2 );
//AT88SC153
int WINAPI Write_153( int ZoneNumber, int Address, int NOB, char *Data );
int WINAPI Read_153( int ZoneNumber, int Address, int NOB, char *Data );
int WINAPI Verify_Password_153( int ReadWrite, int SetNumber, char *Password );
int WINAPI InitializeAuthentication_153( char *Q );
int WINAPI VerifyAuthentication_153( char *CH );
int WINAPI ReadFuse_153( char *Fuse );
int WINAPI BlowFuse_153( int FuseNumber );
//AT45D041
int Reset_45D041( );
int Status_45D041( char *StatusByte );
int Read_Main_45D041( int Page, int ByteAddress, int NOB, char *Data );
int Read_Buffer_45D041( int Buffer, int ByteAddress, int NOB, char *Data );
int Transfer_45D041( int Page, int Buffer );
int Compare_45D041( int Page, int Buffer );
int Buffer_Write_45D041( int Buffer, int ByteAddress, int NOB, char *Data );
int Program_Erase_45D041( int Buffer, int Page );
int Program_No_Erase_45D041( int Buffer, int Page );
int Program_Main_45D041( int Buffer, int Page, int ByteAddress, int NOB, char *Data );
int Rewrite_45D041( int Buffer, int Page );
//Des encrypto & decrypto
int WINAPI LoadKey( char *KeyBytes );
int WINAPI Encrypto( char *InputBytes, char *OutputBytes ); //bfr ovrdble
int WINAPI Decrypto( char *InputBytes, char *OutputBytes ); //bfr ovrdble
这是一条镜像帖。来源:北邮人论坛 / cpp / #29275同步于 2009/9/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
VC++ 2005调用动态链接库问题?急
TelRiver
2009/9/29镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复