vs2013怎么添加头文件和库文件

vs2013怎么添加头文件和库文件,第1张

1、添加工程的头文件目录:工程-属性-配置属性-c/c++-常规-附加包含百目录度:加上头文件存放目录。

2、添加文件引用的lib静态库路径:工程知-属性-配置属性-链接器-常规-附加库目录:加道上lib文件存放目录。

然后添加工程引用的专lib文件名:工程-属性-配置属性-链接器-输入-附加依赖项:加上lib文件名。

3、添加工程引用的dll动态库:把引用的dll放到工程的可执行文件所在的目录下属。

这个错误产生的原因在于,VS2010内部使用的编译器中,无论是32位还是64位的编译组件,都是纯IL的,也就是在64位系统中是

以64位模式运行,这与当前项目使用的平台设置无关。当编译的组件引用了一个标记为x86的库(仅32位模式)时,编译组件便会发生错误,无法加载,从而

导致编译失败。

这个问题发生在以下的情况中:

1,在64位 *** 作系统上使用任何版本的MSBuild编译引用了仅32位组件的.Net

3.5的项目; 2,使用64位MSBuild编译引用了仅32位组件的项目; 3,使用32位MSBuild编译引用了仅64位组件的项目。

要解决这个问题,可以在解决方案管理器中,将所有的库的目标平台全部设置为

AnyCPU就可以了。

如果需要最终执行平台是X86只需将最终的执行文件目标平台设置为x86:

这样即可正常编译。

程序最终运行的平台,是根据可执行文件的设置来的,因此库中设置为AnyCPU不会影响到最终程序的运行,运行依然是在x86之下。

但是如果引用的DLL有仅32位的,那这种方法就不行了,解决办法http://support.microsoft.com/kb/2028833,详见MSBuild

4.0

or

Visual

Studio

2010

may

fail

to

compile

a

32-bit

application

targeted

for

.Net

Framework

3.5,

3.0

or

2.0

on

x64

machine。

详细解决步骤如下:

1、关闭所有Visual

Studio;

2、以管理员的身份打开VS2010的命令提示窗口;

3、更改目录至"<system_drive>:\Program

Files

(x86)\Microsoft

SDKs\Windows\v<x.xx>\bin\”下面;

4、输入该命令corflags

/32bit+

ResGen.exe

/force,执行;

5、使用记事本打开<project_name>.csproj文件;

6、在PropertyGroup下添加<ResGenToolArchitecture>Managed32Bit</ResGenToolArchitecture>,保存,关闭退出。

现在在VS2010中重新打开原先的项目,编译通过,可以正确运行了!

步骤做完后就能运行的原因是,此时ResGen就是以32位模式运行了,而不是64位,因此便可以加载标记为仅32位的程序集了。代价是——它就再也无法编译标记为仅64位模式的程序集了。

对于该问题,还有另一个解决办法,打开项目属性页面,选择应用程序选项卡,设置目标框架为.NET

Framework

4

。(由于框架限制,这个没测试)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11770732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存