0

当我尝试编译以下代码时出现错误 LNK2001,尽管我已经配置了编译器的附加包含目录和链接器的附加库目录。

#include "stdafx.h"
#include <QCamApi.h>

int _tmain(int argc, _TCHAR* argv[])
{


    QCam_Err            errcode = qerrSuccess ; 
    errcode = QCam_LoadDriver();


    if(errcode == qerrSuccess){QCam_ReleaseDriver();}

    return 0;
}

我还有一个使用相同编译器/链接器设置的示例

#include <stdio.h>
#include <stdlib.h>
#include <QCamApi.h>

//===== Main ==============================================================
int main(int argc, char* argv[])
{


    QCam_Err            errcode = qerrSuccess ;

    errcode = QCam_LoadDriver();

    if(errcode == qerrSuccess) {QCam_ReleaseDriver();}

    return 0;
}

但不知何故,我似乎无法从头开始。如果我启动一个空项目并将此代码粘贴到 .cpp 中,为什么它不起作用?对不起,如果这是一个微不足道的问题,非常感谢您的时间!

4

2 回答 2

0

您在工作示例中单独使用 main 但在另一个中使用 _tmain 似乎暗示您的项目设置不同 - 特别是我怀疑一个项目设置为多字节字符,另一个项目设置为 unicode。

我认为这会导致您的链接问题。

是一个更完整的讨论。

于 2014-07-31T08:55:15.647 回答
0

要从 C++ 链接用 C 编写的外部函数,它们应声明为extern "C".

您应该在 QCamApi.h 的调用函数的每个声明中添加extern "C"关键字,或者尝试用纯 C 而不是 C++ 编译代码。

于 2014-07-31T09:11:41.130 回答