大家帮忙看看小弟我引用的第三方库,为何报错呢?先多谢了
大家帮忙看看我引用的第三方库,为何报错呢?先谢谢了
这是我们的第三方采集卡,我用VC6调用这个库,出错,大家帮忙看看是我VC的版本用错了么?还是调用错了?

附录一下bluelight.h内容:
/*******************************************************************************
* Copyright (c) 2005 Blue Sky Electronics
*
* All rights reserved.
*
*****************************************************************************/
/******************************************************************************
*
* File Name: bluelight.h
*
* Description:
*
* This is the interface software for the Habanero TOF card.
*
* Revision History:
*
* 07-09-2005: First version
* 08-15-2005: Second version
*
*****************************************************************************/
/******************************************************************************
*
* Configuration and Status Registers
*
*
*****************************************************************************/
#define BSTOF_CONFIG_OFFSET 0x800
#define BSTOF_IO_CONFIG (BSTOF_CONFIG_OFFSET)
#define BSTOF_OUTPUT_PERIOD (BSTOF_CONFIG_OFFSET+4)
#define BSTOF_OUTPUT_PULSES (BSTOF_CONFIG_OFFSET+8)
#define BSTOF_OUTPUT_WIDTH (BSTOF_CONFIG_OFFSET+12)
#define BSTOF_OUTPUT_PHASE (BSTOF_CONFIG_OFFSET+16)
#define BSTOF_START_WINDOW (BSTOF_CONFIG_OFFSET+20)
#define BSTOF_STATUS (BSTOF_CONFIG_OFFSET+20)
#define IO_CONFIG 0
#define OUTPUT_PERIOD 1
#define OUTPUT_PULSES 2
#define OUTPUT_WIDTH 3
#define OUTPUT_PHASE 4
#define START_WINDOW 5
#define STATUS 6
#define HISTOSIZE 0x200000
#define DATAMASK 0x1FFFFF
#define LASTBIN HISTOSIZE - 1
/******************************************************************************
*
* Globals
*
*
*****************************************************************************/
#ifndef BLUELIGHT_DLL
extern unsigned int BL_Histogram[HISTOSIZE];
extern unsigned int VA[7];
extern unsigned int config[8];
extern char ErrorMsg[1024];
extern unsigned int DataStop;
#endif
/******************************************************************************
*
* Functions
*
*
*****************************************************************************/
#ifndef BLUELIGHT_DLL
extern unsigned int *ReadConfig ( unsigned long virtaddr );
extern void ReadDataDevice ( unsigned long virtaddr, char *listfile );
extern void StopDataDevice ( void );
extern void ResetFIFOs( unsigned long virtaddr );
extern void Write4BytesDevice ( unsigned long virtaddr, unsigned long data );
extern unsigned int *GetHistogram ( void );
extern void ResetHistogram ( void );
extern int WriteHistogram ( char *histofile, unsigned int minbin, unsigned int maxbin );
extern int InitializeRegisters( unsigned long virtaddr );
extern int FindPicoTOF( unsigned long *pVirtAddr, HANDLE *pOpenDev );
extern int ClosePicoTOF( HANDLE opendev );
extern char *ReadError( void );
#endif
我之前用的第三方lib,感觉头文件不一样呢,不是用extern引用的呢
------解决思路----------------------
你没有对应的bluelight.lib文件。link自然出错了
------解决思路----------------------
你的lib文件呢?
------解决思路----------------------
lib文件是否正确,看上去不对
------解决思路----------------------
lib文件直接加载进来。。DLL文件要通过设置路径。。然后把所有厂家的.h和.cpp文件放在你的项目里面
------解决思路----------------------
bluelight.dll
bluelight.h
bluelight
为什么2个文件都有扩展名,lib文件没有扩展名?
------解决思路----------------------
头文件里面函数声明居然不是extern "C"
楼主直接用UE打开lib文件看看导出的函数名吧
------解决思路----------------------
本地文件中,实际有这个lib文件吗
------解决思路----------------------
lib配置在包含目录里要配置下lib所在文件夹的路径,附加依赖项里要写这个lib,包含目录要配置这个lib所对应的头文件,这三步做的都正确吗
------解决思路----------------------
直接使用
#pragma comment,最大的可能就是路径不对
------解决思路----------------------
还有一种方式,那么就是显示方式加载dll
LoadLibrary,GetProcAddress
------解决思路----------------------
这是我们的第三方采集卡,我用VC6调用这个库,出错,大家帮忙看看是我VC的版本用错了么?还是调用错了?
附录一下bluelight.h内容:
/*******************************************************************************
* Copyright (c) 2005 Blue Sky Electronics
*
* All rights reserved.
*
*****************************************************************************/
/******************************************************************************
*
* File Name: bluelight.h
*
* Description:
*
* This is the interface software for the Habanero TOF card.
*
* Revision History:
*
* 07-09-2005: First version
* 08-15-2005: Second version
*
*****************************************************************************/
/******************************************************************************
*
* Configuration and Status Registers
*
*
*****************************************************************************/
#define BSTOF_CONFIG_OFFSET 0x800
#define BSTOF_IO_CONFIG (BSTOF_CONFIG_OFFSET)
#define BSTOF_OUTPUT_PERIOD (BSTOF_CONFIG_OFFSET+4)
#define BSTOF_OUTPUT_PULSES (BSTOF_CONFIG_OFFSET+8)
#define BSTOF_OUTPUT_WIDTH (BSTOF_CONFIG_OFFSET+12)
#define BSTOF_OUTPUT_PHASE (BSTOF_CONFIG_OFFSET+16)
#define BSTOF_START_WINDOW (BSTOF_CONFIG_OFFSET+20)
#define BSTOF_STATUS (BSTOF_CONFIG_OFFSET+20)
#define IO_CONFIG 0
#define OUTPUT_PERIOD 1
#define OUTPUT_PULSES 2
#define OUTPUT_WIDTH 3
#define OUTPUT_PHASE 4
#define START_WINDOW 5
#define STATUS 6
#define HISTOSIZE 0x200000
#define DATAMASK 0x1FFFFF
#define LASTBIN HISTOSIZE - 1
/******************************************************************************
*
* Globals
*
*
*****************************************************************************/
#ifndef BLUELIGHT_DLL
extern unsigned int BL_Histogram[HISTOSIZE];
extern unsigned int VA[7];
extern unsigned int config[8];
extern char ErrorMsg[1024];
extern unsigned int DataStop;
#endif
/******************************************************************************
*
* Functions
*
*
*****************************************************************************/
#ifndef BLUELIGHT_DLL
extern unsigned int *ReadConfig ( unsigned long virtaddr );
extern void ReadDataDevice ( unsigned long virtaddr, char *listfile );
extern void StopDataDevice ( void );
extern void ResetFIFOs( unsigned long virtaddr );
extern void Write4BytesDevice ( unsigned long virtaddr, unsigned long data );
extern unsigned int *GetHistogram ( void );
extern void ResetHistogram ( void );
extern int WriteHistogram ( char *histofile, unsigned int minbin, unsigned int maxbin );
extern int InitializeRegisters( unsigned long virtaddr );
extern int FindPicoTOF( unsigned long *pVirtAddr, HANDLE *pOpenDev );
extern int ClosePicoTOF( HANDLE opendev );
extern char *ReadError( void );
#endif
我之前用的第三方lib,感觉头文件不一样呢,不是用extern引用的呢
------解决思路----------------------
你没有对应的bluelight.lib文件。link自然出错了
------解决思路----------------------
你的lib文件呢?
------解决思路----------------------
lib文件是否正确,看上去不对
------解决思路----------------------
lib文件直接加载进来。。DLL文件要通过设置路径。。然后把所有厂家的.h和.cpp文件放在你的项目里面
------解决思路----------------------
bluelight.dll
bluelight.h
bluelight
为什么2个文件都有扩展名,lib文件没有扩展名?
------解决思路----------------------
头文件里面函数声明居然不是extern "C"
楼主直接用UE打开lib文件看看导出的函数名吧
------解决思路----------------------
本地文件中,实际有这个lib文件吗
------解决思路----------------------
lib配置在包含目录里要配置下lib所在文件夹的路径,附加依赖项里要写这个lib,包含目录要配置这个lib所对应的头文件,这三步做的都正确吗
------解决思路----------------------
bluelight.dll
bluelight.h
bluelight
为什么2个文件都有扩展名,lib文件没有扩展名?
lib常用后缀没显示出来,有后缀的
直接使用
#pragma comment,最大的可能就是路径不对
------解决思路----------------------
还有一种方式,那么就是显示方式加载dll
LoadLibrary,GetProcAddress
------解决思路----------------------
extern "C"
{
#include "bluelight.h"
}