在使用VS2010创建exe安装文件的时候加入多人模式出错了自己编写的卸载文件,运行时出错

查看:23392|回复:12
调试软件为VS2010。
刚才写了一段程序,编译调试时提示找不到指定文件,到Debug目录下一看,没有生成.exe,只生成了两个文件:
.lastbuildstate
貌似少生成了不少东西,虽然最后提示成功了,但是没有看到编译.cpp文件以及连接的过程。
代码和编译信息如下:复制内容到剪贴板代码:#include &iostream&
#include &string&
#define man 'm'
#define woman 'w'
class Student
Student(){ num = 0 ; name = &0& ; sex = '0' ; }
Student( long nu , string na , char s ): num(nu) , name(na) , sex(s) {}
void display(void)
{ cout && num && & & && name && & & && sex &&}
class Teacher
Teacher(){ num = 0 ; name = &0& ; sex = '0' ; }
Teacher( long nu , string na , char s ): num(nu) , name(na) , sex(s) {}
void operator = ( Student& );
void display(void)
{ cout && num && & & && name && & & && sex &&}
void Teacher:perator = ( Student& a )
int main(void)
Student a(
, &Longl& , man );
a.display();
b.display();
b.display();
}1&------ 已启动全部重新生成: 项目: 10.7, 配置: Debug Win32 ------
1&生成启动时间为
10:54:57。
1&_PrepareForClean:
1&&&正在删除文件“Debug\10.7.lastbuildstate”。
1&InitializeBuildStatus:
1&&&正在创建“Debug\10.7.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1&FinalizeBuildStatus:
1&&&正在删除文件“Debug\10.7.unsuccessfulbuild”。
1&&&正在对“Debug\10.7.lastbuildstate”执行 Touch 任务。
1&生成成功。
1&已用时间 00:00:00.09
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
本帖最后由 zyp568 于
11:35 编辑
中级工程师
10没用过,不知道其项目结构是不是和08一样,楼主试试找找看有没有bin目录~也许exe在那个里面
我瞎猜的引用:原帖由 zyp568 于
11:18 发表
调试软件为VS2010。
刚才写了一段程序,编译调试时提示找不到指定文件,到Debug目录下一看,没有生成.exe,只生成了两个文件:
.lastbuildstate
貌似少生成了不少东西,虽然最后提示成功了,但是没有看到编译.cpp文件以及 ...
The best of man is like water
Which benefits all things, and does not contend with them
Which flows in places that others disdain
Where it is in harmony with the Way
我把项目文件全部删除,重建,加入写好的.cpp文件~~居然就能生成.exe了。
但我的原始程序中有错误,重载运算后,访问的目标对象的成员是私有的,但是“operator = ”不能声明为其他类的友元函数,不知道是不是这些错误导致生成了一些类似日志的文件,从而导致我程序改写以后依然无法生成.exe文件。
贴个微软答疑的官方网址:
本帖最后由 zyp568 于
12:22 编辑
中级工程师
你可以试试VS自带的“清理项目”选项引用:原帖由 zyp568 于
12:20 发表
我把项目文件全部删除,重建,加入写好的.cpp文件~~居然就能生成.exe了。
但我的原始程序中有错误,重载运算后,访问的目标对象的成员是私有的,但是“operator = ”不能声明为其他类的友元函数,不知道是不是这些错误导致生成了 ...
The best of man is like water
Which benefits all things, and does not contend with them
Which flows in places that others disdain
Where it is in harmony with the Way
请仔细阅读源程序很多小错误,,
你的程序应该是编译正确,链接出错,首先为teacher::operator(),有,两个:,其次operator拼写出错,自己再仔细看下,手机用户,没法运行查看,自己找吧,见谅。
只有你爬到山顶了,这座山才会支撑着你。
这个选项好像没法全部清除干净。
恩,初学C++的,我纳闷的是,怎么一个错误的程序居然可以得到一个成功提示。
我删除原有工程,重建了一个工程后,编译报错了,程序已经改正,调试成功。
中级工程师
首先Student类中的成员属性都是私有变量, Teacher类中是无法访问私有成员属性,你应该在Student类中提供公有的成员函数来访问其私有的成员属性。 而且赋值函数并非无返回值。复制内容到剪贴板代码:#include &iostream&
#include &string&
class Student
& && &&&Student()
& && && && && & num = 0;
& && && && && & name = &&;
& && && && && & sex = &&;
& && &&&Student(int _num, string _name, string _sex) : num(_num), name(_name), sex(_sex)
& && &&&int GetNum() const
& && && && && &
& && &&&string GetName() const
& && && && && &
& && &&&string GetSex() const
& && && && && &
& && &&&void Dispaly()
& && && && && & cout&&num&&& &&&name&&& &&&sex&&
class Teacher
& && &&&Teacher()
& && && && && & num = 0;
& && && && && & name = &&;
& && && && && & sex = &&;
& && &&&Teacher(int _num, string _name, string _sex) : num(_num), name(_name), sex(_sex)
& && &&&Teacher& operator=(const Student &s)
& && && && && & num = s.GetNum();
& && && && && & name = s.GetName();
& && && && && & sex = s.GetSex();
& && && && && & return *
& && &&&void Dispaly()
& && && && && & cout&&num&&& &&&name&&& &&&sex&&
int main(int argc, char **argv)
& && &&&Student s(1, &Alex&, &男&);
& && &&&s.Dispaly();
& && &&&t =
& && &&&t.Dispaly();
& && &&&system(&pause&);
& && &&&return 0;
}我感觉很少见这样的非同类的赋值函数。
本帖最后由 紫色枫叶 于
17:13 编辑
2010对于编码要求非常高,所以要尽量减少特别的有歧义的语句使用
中肯的建议
本帖最后由 dralausky 于
10:49 编辑
中级工程师
如果有编译错误的程序却总是通过编译,一般情况就是编译失败了,也就是说并没有进行重新编译。这个时候就需要清理项目了。引用:原帖由 zyp568 于
15:31 发表
恩,初学C++的,我纳闷的是,怎么一个错误的程序居然可以得到一个成功提示。
我删除原有工程,重建了一个工程后,编译报错了,程序已经改正,调试成功。 ...
The best of man is like water
Which benefits all things, and does not contend with them
Which flows in places that others disdain
Where it is in harmony with the Way
中级工程师
嗯,子类到父类的赋值是比较少见。引用:原帖由 紫色枫叶 于
17:11 发表
首先Student类中的成员属性都是私有变量, Teacher类中是无法访问私有成员属性,你应该在Student类中提供公有的成员函数来访问其私有的成员属性。 而且赋值函数并非无返回值。
The best of man is like water
Which benefits all things, and does not contend with them
Which flows in places that others disdain
Where it is in harmony with the Way
恩,书上有指出,尽量避免这类用法,由于初学C++,写出来调试只是想探个究竟。
鼓励这种专研精神!
生成的exe文件在上一层的debug文件夹里面
版规,回帖可获2无忧币VS调试出现尝试运行项目时出错拒绝访问。 - 开源中国社区
当前访客身份:游客 [
当前位置:
有大神遇到过这个问题吗?我网上搜了一些解决方法,但都不符合。
启动调试后弹出的错误是 :尝试运行项目时出错:无法启动程序“调试文件地址”,拒绝访问。
我试了好几个项目都启动不了调试了。求解决。
共有1个答案
<span class="a_vote_num" id="a_vote_num_
我也遇到这个问题了,把VS重新安装可以了,但是又出现了,崩溃。
--- 共有 2 条评论 ---
(1年前)&nbsp&
我的已经解决了,是某个游戏的问题,重启之后就没问题了。
(2年前)&nbsp&
更多开发者职位上
有什么技术问题吗?
哼哼哈嘻的其它问题
类似的话题打包过程vs2010(包含卸载功能、生成一个exe文件)
1、&&在vs2010&选择“新建项目”----“其他项目类型”----“Visual
Studio Installer&“安装项目”:
命名为:Setup1&。
这是在VS2010中将有三个文件夹,
1.“应用程序文件夹”表示要安装的应用程序需要添加的文件;
&&&&&2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe;
3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。
2、&&应用程序文件夹中点右键添加文件:表示添加要打包的文件;
添加的文件一般是已经编译过应用程序的debug目录下的文件;
如果debug&下面有子文件夹则需要“添加文件夹”,例如:data
然后把对应的子文件里的内容添加到此文件夹中;
把需要创建程序快捷方式的图标也添加进来:后缀名为:ico
3、&&&在创建的项目名称(Setup1)上点击右键:属性
选择系统必备
然后选择.NET的版本,和Windows
Installer3.1(可选项)
&&&&&&&选择:“从与我应用程序相同的位置下载系统必备组件”
这样安装包就会打包.NET
FrameWork&,在安装时不会从网上下载.NET&&FrameWork组件;但是安装包会比较大。
VS2010发布.NET2.0的版本,在创建安装程序时,需要设置启动条件:在项目名称(setup1)上,点击右键选择“视图”&“启动条件”:
然后VS2010会创建如下文件:
在“启动条件”中,&点击“.NET
Framework”在Version上面选择.NET
Framework 2.0;
Framework 2.0上创建的项目在安装时,就不会安装.NET3.5或其他版本,
也不会重启(解决.NET
2.0&创建的项目,安装.NET
FrameWork3.5的问题)。
4、&&设置安装文件的目录(路径):
创建的项目名称(setup1)点击左键(不是右键),在属性中设置参数如下图:
其中Author&为作者;Manufacturer为公司名称;ProductName为应用程序的名字;
例如我们设置为:BeyondKKO;Manufacturer:自由公司;ProductName:串口测试。
把InstallAllUsers&设置为True&。
(这样在“控制面板”程序中会显示公司的名称;
在安装时会默认为“任何人”,否则默认为“只有我”)
在应用程序上点击左键,如下图:第一个为系统主目录(默认C:\Programe),第二个为公司名([Manufacturer]),第三个为应用程序名称,这样在安装时就会创建两层的文件路径。需要删除DefaultLocation中的:[Manufacturer]&。删除后只有应用程序的名称。
5、&创建应用程序图标与卸载程序:
A.“在应用程序文件夹”中的.exe文件中,点击右键,创建快捷方式:
重命名“串口测试程序”,然后点击右键属性:选择Icon
双击进入选择我们之前添加的“MiXer.ico”
确定后,拖动此快捷方式到“用户桌面”
B.&“用户的‘程序’菜单”中添加一个文件夹,命名为:“串口程序”
然后同样的方式创建TEXTCOM.exe一个快捷方式(“串口测试程序”),拖动到“串口程序”中;
然后给.NET应用程序创建一个卸载程序:
在“应用程序文件夹”中添加:C:Windows\System32\Msiexec.exe
右键创建快捷方式,重命名为:卸载,把此快捷方式拖动到“串口程序”;
点击项目名称(Setup1),在属性中找到:ProductCode
复制此ProductCode&,粘贴到“卸载”快捷方式的Arguments属性,前面加/x空格
6、&&完成以上步骤,就可以生成解决方案了。
7、生成解决方案后,在debug文件夹中就是我们需要的安装包.
8、&&安装完在开始菜单中有“串口程序”的文件夹,里面有我们创建的两个快捷方式;
桌面上也有快捷方式。
经过自己的测试,发现只有把Debug文件夹整个都发给别的人,别人才能正常安装,否则就会出现错误。
如果把这些安装内容都打在一起,形成一个&.exe&文件,就比较方便了,接下来我们来看一下怎么打包:
.exewinrar
vswinformDebug21.exe1.msi.exe.msi
.NET Framework
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 创建新apple id时出错 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信