code blocks能写mfc程序吗?具体怎么 *** 作?

code blocks能写mfc程序吗?具体怎么 *** 作?,第1张

code blocks不可以写mfc程序

1、CodeBlocks最好使用wxWidgets,可以直接使用Win32的API函数。

2、而MFC是Win32的API函数的再次封装,有自己的库函数。

3、这个不是能不能写的问题,而是编译问题。

4、如果CodeBlocks使用VC的编译器,那就能编译MFC的程序。

5、如果使用GCC编译器,好像是不能编译MFC程序。

6、而CodeBlocks是可以配置使用哪种编译器的。

为什么我编译的MFC应用程序在其他电脑上不能运行?

因为其他的电脑上没有相关的运行库,因此无法运行。 但可以这样解决,打开工程或项目的属性,在常规选项卡中设置:使用MFC作为静态链接库(不同版本的描述不尽相同,但都有静态两个字),设置后再编译就可以了。

如何在其他电脑上运行VS2005编译的DEBUG版应用程序

首先,通过菜单找到关于选项查询当前VS2005的版本,然后到自己电脑"$(Windows)/WinSxS/"目录下可以看到很多长长 名字的目录。第一个"_"前为平台,这里以x86为例,接下来找到带有"Microsoft.VC80.DebugCRT" 和"Microsoft.VC80.DebugMFC"字样的且包含上面版本号的目录。我的电脑目录如下:

x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f x86_Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_257740a4

将这两个目录拷贝到目标电脑的"$(Windows)/WinSxS/"位置,进入"$(Windows)/WinSxS/Manifests/"目录,用上面的方法找到四个文件并拷贝到目标电脑的相同目录中,我的电脑文件如下:

x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f.cat以及.manifest文件

x86_Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_257740a4.cat以及.manifest文件

最后一步,进入"$(Windows)/WinSxS/Policies/"目录,找到带有"Microsoft.VC80.DebugCRT"和"Microsoft.VC80.DebugMFC"字样的两个目录将其拷贝到目标电脑的相同目录,我的电脑目录如下:

x86_policy.8.0.Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_x-ww_09e017b4

x86_policy.8.0.Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_x-ww_a193936f

到 此,所有需要的文件都拷贝结束了,运行刚刚的应用程序,显示了我们熟悉的错误信息:"This application has failed to start because XXX.dll was not found. Re-installing the application may fix this problem."

编写好的C程序如何才能变成EXE应用程序在其他不装有C编译系统的电脑上运行?

这个要看你是用什么样的编译器

Win-TC\projects的话 里头有编译好的 exe文件,不过复制出来以后就运行不了。因为TC是16位的,而WINDOWS是32位的

要是用vc6.0那就简单多了。

在“工程”->“设置”中的“常规”选项卡,

Microsoft基础类:

选择“使用MFC作为静态链接库”。

这样生成的EXE文件可以在没有安装VC++的电脑上运行了。

生成的EXE文件在Debug或者Release文件夹下。

其他的编译器我不清楚

VC编译的Win32应用程序不能在Windows 7运行,win32应用程序是什么,为什么叫Win32有点莫名其妙

Windows 32位应用程序。

你一定用了什么非开放的API接口,所以不能用。

电脑C盘里的应用程序能不能防在其他盘里运行啊

可以,但你得修改路径,注册表,非常麻烦,如果是单个的程序,你可以找到启动的图标然后发送到桌面.系统程序一般还是不要乱动,别把除了系统程序之外的程序或软件给C盘安装,很容易感染C盘中毒的

在VS2005中用VC#编译的程序为什么在其他机器运行不了?

编好后当然不能就直接用了,要对程序进行打包:创建项目→项目类型→其他类型→安装和部署→安装向导。

为什么Qt编译的程序不能在XP上运行

使用qt5.7以下的版本,在xp下依赖库和其他 *** 作系统不同,好像有个windows.dll

MFC生成的exe程序不能在其他电脑上运行怎么办

depend。exe 查一查你的程序依赖那些dll copy过去,否则请 静态 + release 重新编译

在其他店(电脑城里的)下载应用程序后 为什么无法从电脑itunes上下载应用程序到iphone

首先,你需要注册账户(详细教程::hi.baidu./wongstephanie/blog/item/4d57da14168f4bd9c3fd78bc.)

然后对电脑进行授权(打开iTunes,点击“Store”—“对这台电脑授权”)才能安装应用程序;

其次,登录以后你点击应用程序购买然后下载安装就好了;

最后,当你使用自己的电脑的iTunes库同步时,你的iphone内原有的程序也会被抹掉的。

怎么我用c++ builder6.0编的一个小程序在其他电脑上不能运行

在程序编译的时候,你需要把程序用到东西都打包到EXE文件中,如下 *** 作:

在Options 中,把Packages--build with runtime packages前的勾去掉

把linker-- use dynamic rtl前的勾去掉

另外,如果你用了数据库功能,那么,你必须把数据库支撑文件放到运行程序的电脑中,因为数据库支撑包不能与EXE文件一起封装

LNK2005错误——重复定义错误

造成LNK2005错误主要有以下几种情况:

1.重复定义全局变量。可能存在两种情况:

A、对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下。其实这是错误的,全局变量是针对整个工程的。正确的应该是在一个CPP文件中定义如下:int g_Test那么在使用的CPP文件中就应该使用:extern int g_Test即可,如果还是使用int g_Test,那么就会产生LNK2005错误,一般错误错误信息类似:AAA.obj error LNK2005 int book c?book@@3HA already defined in BBB.obj。切记的就是不能给变量赋值否则还是会有LNK2005错误。

这里需要的是“声明”,不是“定义”!根据C++标准的规定,一个变量是声明,必须同时满足两个条件,否则就是定义:

(1)声明必须使用extern关键字;(2)不能给变量赋初值

所以,下面的是声明:

extern int a

下面的是定义

int aint a = 0extern int a =0

B、对于那么编程不是那么严谨的程序员,总是在需要使用变量的文件中随意定义一个全局变量,并且对于变量名也不予考虑,这也往往容易造成变量名重复,而造成LNK2005错误。

2.头文件的包含重复。往往需要包含的头文件中含有变量、函数、类的定义,在其它使用的地方又不得不多次包含之,如果头文件中没有相关的宏等防止重复链接的措施,那么就会产生LNK2005错误。解决办法是在需要包含的头文件中做类似的处理:

#ifndef MY_H_FILE //如果没有定义这个宏

#define MY_H_FILE //定义这个宏

……. //头文件主体内容

…….

#endif

上面是使用宏来做的,也可以使用预编译来做,在头文件中加入:

#pragma once

//头文件主体

3.使用第三方库造成的。这种情况主要是C运行期函数库和MFC的库冲突造成的。具体的办法就是将那个提示出错的库放到另外一个库的前面。另外选择不同的C函数库,可能会引起这个错误。微软和C有两种C运行期函数库,一种是普通的函数库:LIBC.LIB,不支持多线程。另外一种是支持多线程的:msvcrt.lib。如果一个工程里,这两种函数库混合使用,可能会引起这个错误,一般情况下它需要MFC的库先于C运行期函数库被链接,因此建议使用支持多线程的msvcrt.lib。所以在使用第三方的库之前首先要知道它链接的是什么库,否则就可能造成LNK2005错误。如果不得不使用第三方的库,可以尝试按下面所说的方法修改,但不能保证一定能解决问题,前两种方法是微软提供的:

A、选择VC菜单Project->Settings->Link->Catagory选择Input,再在Ignore libraries 的Edit栏中填入你需要忽略的库,如:Nafxcwd.libLibcmtd.lib。然后在Object/library Modules的Edit栏中填入正确的库的顺序,这里需要你能确定什么是正确的顺序。

B、选择VC菜单Project->Settings->Link页,然后在Project Options的Edit栏中输入/verbose:lib,这样就可以在编译链接程序过程中在输出窗口看到链接的顺序了。

C、选择VC菜单Project->Settings->C/C++页,Catagory选择Code Generation后再在User Runtime Libraray中选择MultiThread DLL等其他库,逐一尝试。


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

原文地址: https://outofmemory.cn/yw/11162740.html

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

发表评论

登录后才能评论

评论列表(0条)

保存