链接问题C/C++; 我是C++的新手,我急需帮助。我想重新使用供应商已经编码的功能。为此,供应商给了我.H文件和.lib文件。供应商代码是在Visual C++语言中开发的,我试图在Visual C++ 6中访问那些.LIB文件。编译成功。我在链接时出错。采取的步骤: 我已经链接了项目设置下的所有.lib文件

链接问题C/C++; 我是C++的新手,我急需帮助。我想重新使用供应商已经编码的功能。为此,供应商给了我.H文件和.lib文件。供应商代码是在Visual C++语言中开发的,我试图在Visual C++ 6中访问那些.LIB文件。编译成功。我在链接时出错。采取的步骤: 我已经链接了项目设置下的所有.lib文件,c++,C++,我仍然收到以下错误消息: 定价\u w32.obj:错误LNK2001:未解析的外部符号\u打开\u项目\u信息\u文件 调试/定价\u w32.exe:致命错误LNK1120:1未解析的外部 执行link.exe时出错 下面是我写的代码: #include<stdio.h> #include<string.h> #include<fstream> #include<conio.h> #include<

我仍然收到以下错误消息:

定价\u w32.obj:错误LNK2001:未解析的外部符号
\u打开\u项目\u信息\u文件
调试/定价\u w32.exe:致命错误LNK1120:1未解析的外部 执行link.exe时出错

下面是我写的代码:

    #include<stdio.h>
    #include<string.h>
    #include<fstream>
    #include<conio.h>
    #include<stdlib.h>
    #include<iostream>
    #include <windows.h>
    extern "C"
    {
    #include<cma_telx.h>
    }
    using namespace std;
    int process_file(char **in_file);
    extern "C"
    {
    void lkup_item_info( void *item );
    int open_item_info_files( int *err );
    int close_item_info_files( int *err );
    int open_item_promo_files( int *err );
    int close_item_promo_files( int *err );
    void lkup_rtn_csp_db( void *itemCspWDB );
    void lkup_rtn_promos_csp_db( void *itemPrmCspWDB );
    int do_empdisc_lookup( struct EMPDISC_RECORD *edisc, int *err );
    int do_empauth_lookup( struct EMPLOYEE_AUTH_REC *eauth, int *err );
    void return_all_promos(struct ALL_PRMINFO_BASE &all_promos);
    } 
    int APIENTRY WinMain(HINSTANCE hInstance,
                 HINSTANCE hPrevInstance,
                 LPSTR     lpCmdLine,
                 int       nCmdShow)
    {
        char UPC[7];
        void *SKU;
     cout<<"Normal end"<<endl;
 int return_code, *err;
 return_code = open_item_info_files(err); 
     cout<<return_code<<"open item return code"<<endl;
     cout<<return_code<<"Close item return code"<<endl;
     return 0;
    }
下面是命令的一个片段:dumpbin/symbols cma_telx.lib

076 00000000 SECT1D notype()外部|?打开项目信息文件@@YAHPAH@Z(int.\u cdecl打开项目信息文件(int*)) 标记索引00000083大小00000121行00007129下一个函数0000008E 078 00000000第1节非类型静态数据 截面长度9,#relocs 0,#linenums 0,校验和145249B4,选择2(选择任意) 07A 00000000第1节非外部类型|_C@_08OOCA@PMSDPTCL?$AA@(
string'))
07B 00000000第1F节非类型静态数据
截面长度7,#relocs 0,#linenums 0,校验和7F8A6B53,选择2(选择任意)
07D 00000000第1F节非外部类型|_C@_06CPCO@TSITEM?$AA@(
string') 07E 00000000第20节非类型静态数据 截面长度7,#relocs 0,#linenums 0,校验和F397CDFF,选择2(选择任意) 080 00000000第20节不键入外部|_C@_06OHCH@KPXREF?$AA@(`string') 081 00000000未定义notype()外部| |(u imp)文件管理器
082 00000000 UNDEF notype()外部| u chkstk

是用于静态链接还是用于dll链接的*.lib文件?在我的VC++2010 Express中,我必须在项目属性/C++/codegeneration/runtime bib下检查是否针对DLL进行链接(=静态)


转到未解析外部符号的定义/声明并发布其定义

首先要检查的是确保已添加.lib文件项目属性>>链接器。我现在在我的mac上,但是你在第二页的链接器设置下添加了.lib,你必须在第一页的链接器下添加路径


之后,检查C++的“代码生成”,并查看它是否通过MT或MD设置链接。这必须与实际生成的.lib文件相匹配,因此您可能希望切换它,这可能会起到作用。

错误表明您不喜欢在生成时使用这些libcompiling@gongzhitaao,link,你的意思是?你确定库中有一个名为
open\u item\u info\u files
的函数吗?你拼写/大写/标点正确吗?你可以看看这个问题,它可以帮助你“窥视”图书馆。要么你链接不对,要么你要求的东西不在那里。这将帮助您缩小搜索范围。库是32位代码还是64位代码?我已经尝试了两天将.lib文件添加到链接器和/mt&/MD选项。到目前为止,一切都不起作用。我在原来的问题中提供了更多的信息。请看一下,我用Visual C++ 6
    int open_item_info_files( int *err );