VC使用静态库的问题:无法解析的外部符号

还不够格啊 2015-03-16 10:49:51
VC12

使用第三方提供的.h,.lib和.dll文件,其中有两个版本的.lib文件,调用方法如下:

1.使用DLL
#include "A.h"
#pragma comment(lib,"A.lib")
编译链接没有问题,程序可以正常运行并调用A.dll。

2.不使用DLL
#include "A.h"
#pragma comment(lib,"A_Static.lib")
编译链接错误:error LNK2001: 无法解析的外部符号 __imp__XXXXX
其中无法解析的外部符号都是在.h文件中的函数。

目的就是想用第三方提供的.h和静态.lib生成一个.exe,不使用其.dll。
请问是哪里的问题,是我的用法错误还是工程参数设置的问题?
...全文
1134 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
rxguoblp 2015-03-17
  • 打赏
  • 举报
回复
imp 表示 import(导入)
worldy 2015-03-16
  • 打赏
  • 举报
回复
引用 3 楼 jason_wentzel 的回复:
把你的工程设置成静态编译试试看,Use MFC in a Static Library
那岂不是把MFC也弄成了静态库了
孤客天涯 2015-03-16
  • 打赏
  • 举报
回复
把你的工程设置成静态编译试试看,Use MFC in a Static Library
worldy 2015-03-16
  • 打赏
  • 举报
回复
静态库可能没有在设置中设置正确的路径,使用全路径名称试试
roadwander 2015-03-16
  • 打赏
  • 举报
回复
A_Static.lib路径是否正确
likfeng 2015-03-16
  • 打赏
  • 举报
回复
引用 10 楼 xiaohuh421 的回复:
注意A.h中是否声明了, 函数为外部导入. 静态库函数, 在头文件中不应该声明为外部导入, 而是普通函数的样式.
xiaohuh421 2015-03-16
  • 打赏
  • 举报
回复
注意A.h中是否声明了, 函数为外部导入. 静态库函数, 在头文件中不应该声明为外部导入, 而是普通函数的样式.
lougd 2015-03-16
  • 打赏
  • 举报
回复
把静态库的lib文件放到你的工程目录下试试。
还不够格啊 2015-03-16
  • 打赏
  • 举报
回复
引用 7 楼 u011391040 的回复:
在dll的头文件里这样声明下试试。
#ifdef __cplusplus
extern "C" 
{
#endif
//你的dll函数声明
#ifdef __cplusplus
}
#endif
还是同样的链接错误。
lougd 2015-03-16
  • 打赏
  • 举报
回复
在dll的头文件里这样声明下试试。
#ifdef __cplusplus
extern "C" 
{
#endif
//你的dll函数声明
#ifdef __cplusplus
}
#endif
还不够格啊 2015-03-16
  • 打赏
  • 举报
回复
发现以下问题: 在编译链接的错误列表里,错误如下: error LNK2001: 无法解析的外部符号 __imp__MyFunc_XX 但函数名MyFunc_XX才是我要使用的名字,代码里使用的也是MyFunc_XX,编译也已经通过,但连接时怎么会多出 __imp__ 的开头呢?
还不够格啊 2015-03-16
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
静态库可能没有在设置中设置正确的路径,使用全路径名称试试
路径设置没有问题,否则会报找不到.lib文件的错误。

16,371

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧