小弟最近要求很快的完成一个CAN的测试程序,需要调用CAN厂家提供的调用函数,所用的调用函数定义在一个candrv.h中,全部为为int APIENTRY 类型,我在自己的程序中包含 了此头文件,并另外的自定义的头文件中作了外部函数的说明,编译是为什么还是提示
CANTestDlg.obj : error LNK2001: unresolved external symbol _InstallCANDriverEx@36
Debug/CANTest.exe : fatal error LNK1120: 1 unresolved externals下面是一个函数的具体举例头文件 cnadrv.h#ifndef CANDRV95_DLL_HEADER
#define CANDRV95_DLL_HEADERtypedef void (CALLBACK* CANRECCALLBACK)(void* lpParam);
extern "C"{
int APIENTRY InstallCANDriver(  //Add
    HWND hWnd,
WORD CAN_BaseAddress,                 
BYTE CAN_IntNo,                       
WORD CAN_bps,                         
BYTE CAN_StationAddress,              
BYTE CAN_Mask
);
int APIENTRY InstallCANDriverEx(  //Add
        WORD iPort,
    HWND hWnd,
WORD CAN_BaseAddress,                 
BYTE CAN_IntNo,                       
WORD CAN_bps,                         
BYTE CAN_StationAddress,              
BYTE CAN_Mask,
CANRECCALLBACK pFn=NULL, // Reserved
void* pParam = NULL // Reserved
);
} /* End of extern "C" */
#endif外不函数说明的头文件 gloable.h
extern  int APIENTRY InstallCANDriverEx(  //Add WORD iPort, HWND hWnd,
WORD CAN_BaseAddress,                 
BYTE CAN_IntNo,                       
WORD CAN_bps,                         
BYTE CAN_StationAddress,              
BYTE CAN_Mask,
CANRECCALLBACK pFn, // Reserved
      void* pParam  ); // Reserved
我在自己的.cpp中包含了上述头文件,还是提示连接错误,请问各位大哥大姐是 什么问题?快来救救小弟吧!先谢谢了!

解决方案 »

  1.   

    头文件的目录我已经包含了!提供的库文件是否为candrv.lib?? 包含了以后编译提示为
    e:\can30b\candrv.lib(2) : error C2018: unknown character '0x60'
    ........................................................
    而且安装程序提供的例程里面没有见到有关库文件的包含,也只是包含了头文件,编译可以通过,
    不过它没有window界面,是基于dos界面的,功能不全,为什么我在基于对话框的工程中,包含了头文件编译总是提示上述的错误??
      

  2.   

    谢谢各各位了,我得库文件没有连接,连接库文件后就好了!
    在prejocet中添加库文件后即可!