免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5682 | 回复: 8
打印 上一主题 下一主题

[C++] 错误代码lnk2019问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-30 13:15 |只看该作者 |倒序浏览
5可用积分

添加这段代码后就出现这个错误了

代码在MFCApplication1Dlg.cpp文件中写的
头文件
#pragma comment(lib, "Mpr.lib")
#include "stdafx.h"
#include "MFCApplication1.h"
#include "MFCApplication1Dlg.h"
#include "afxdialogex.h"
#include <winnetwk.h>
实在是没法了 求指点

最佳答案

查看完整内容

_WNetAddConnection2W@16,貌似名称被修饰了,DWORD APIENTRYWNetAddConnection2W( __in LPNETRESOURCEW lpNetResource, __in_opt LPCWSTR lpPassword, __in_opt LPCWSTR lpUserName, __in DWORD dwFlags );是不是你在#include "Winnetwk.h"之前把APIENTRY给define了?

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
2 [报告]
发表于 2013-12-30 13:15 |只看该作者
_WNetAddConnection2W@16,貌似名称被修饰了,

DWORD APIENTRY
WNetAddConnection2W(
    __in     LPNETRESOURCEW lpNetResource,
    __in_opt LPCWSTR       lpPassword,
    __in_opt LPCWSTR       lpUserName,
    __in     DWORD          dwFlags
    );

是不是你在#include "Winnetwk.h"之前把APIENTRY给define了?

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
3 [报告]
发表于 2013-12-30 13:29 |只看该作者
本帖最后由 Herowinter 于 2013-12-30 15:45 编辑

没有.NET,没办法试,好象是找不到WNetAddConnection2()
的实现,你可以看一下这个例子
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385413%28v=vs.85%29.aspx
为什么这里面是#include <Winnetwk.h>?

论坛徽章:
0
4 [报告]
发表于 2013-12-30 17:07 |只看该作者
回复 2# Herowinter


   
    是找到了 但是被我要调用的东西引用着没法使用反正我没看懂意思
   
     头文件微软有解释需要Winnetwk.h支持 才行

论坛徽章:
0
5 [报告]
发表于 2013-12-30 17:10 |只看该作者
回复 2# Herowinter


    改成#include "Winnetwk.h"也没用啊

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
6 [报告]
发表于 2013-12-30 17:26 |只看该作者
本帖最后由 Herowinter 于 2013-12-30 17:31 编辑

回复 4# tan1301230147
没有环境,没办法重现,只能瞎猜测,
实在是爱莫能助了。
楼主网上找些资料应该能解决这个
问题的呀。比如这个
http://bbs.csdn.net/topics/30314168


   

论坛徽章:
1
双子座
日期:2013-11-14 17:43:24
7 [报告]
发表于 2013-12-31 11:47 |只看该作者
这个是混用了Unicode/非Unicode版本造成的Link错误。

从你的代码中可以看出来,你用‘L',说明你希望用UNICODE版本。

但是你的VC工程设置中,你的工程编译选项(含:链接选项),你用的是ANSI版本,
所以出现链接错误。

1)调整你的代码或工程选项,保证他们一致.
2)如果还是出现问题,把pragma comment(lib, "Mpr.lib") 从代码中移出,放入到工程选项中。

建议:在VC中,你最好使用_T来替代L, 用tchar替代传统的char/wchar_t, 这样你的程序可以容易的编译成ansi/unicode两种版本。

论坛徽章:
0
8 [报告]
发表于 2013-12-31 14:51 |只看该作者
谢谢大家已经解决了原因是
#include <winnetwk.h>
#pragma comment(lib, "mpr.lib")
头定义写反了 把pragma写到前面去了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP