各路专家给俺这新手解答几个问题-_-!

GXY2005 2009-08-18 05:34:24
问题一:怎样吧函数添加到公共域?
我加到Globals文件夹下用::来调用结果报告错误:error C2039: 'test' : is not a member of '`global namespace'
怎么样添加的函数可::直接调用?

问题二:异常捕获问题?
如何捕获所有异常并把异常信息暴露出来呢?
try
{
}
catch(????这里怎么写,...好像可捕获所有异常但无法提供错误信息???)
{

}
多谢了!!!

...全文
77 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
GXY2005 2009-08-19
  • 打赏
  • 举报
回复
明白了,非常感谢,以后多指教了。结帖!~_~
雪影 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 gxy2005 的回复:]
1、事实上没有公共函数。
  但可把函数统一放某类中集中使用,使用时引用该类头文件即可。

2、异常捕获比较麻烦,必须程序员预先已经预料到的才能捕获。
  测试过一个除0错误,CException都无法捕获到。
可以扑捉到,但是不一定能解析的出来,当然不是使用CException扑捉,
CException只能扑捉抛出的错误类型是以CException为基类的错误。

[/Quote]
GXY2005 2009-08-19
  • 打赏
  • 举报
回复
1、事实上没有公共函数。
但可把函数统一放某类中集中使用,使用时引用该类头文件即可。
2、异常捕获比较麻烦,必须程序员预先已经预料到的才能捕获。
测试过一个除0错误,CException都无法捕获到。
雪影 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gxy2005 的回复:]
楼主似乎学习C++没几天 ,是啊才看一周呵呵?
1.没有公共函数函数这个概念,只有全局函数
  全局函数怎么定义?放那里?
见2楼
2.C++异常原理楼主还没有明白。
  你的解释我基本明白了,CException虽是异常基类,但总有捕获不到的未定义异常。
  。。。可以捕获所有好像。之所以有这个想法是由于c#是有这么强悍的能捕获所有异常,非常之方便,所以也想在mfc里找同类功能呵呵!
以目前mfc异常捕获的能力,在我写错代码时候我依靠异常信息得不到任何帮助!但在c#下我立马就知道了错误原因?谢谢了!
c++中你需要知道异常的类型才行,否则就算你可以扑捉到异常,但是你解析不出啦。c++中的异常需要自己解析。
[/Quote]
GXY2005 2009-08-18
  • 打赏
  • 举报
回复
楼主似乎学习C++没几天 ,是啊才看一周呵呵?
1.没有公共函数函数这个概念,只有全局函数
全局函数怎么定义?放那里?
2.C++异常原理楼主还没有明白。
你的解释我基本明白了,CException虽是异常基类,但总有捕获不到的未定义异常。
。。。可以捕获所有好像。之所以有这个想法是由于c#是有这么强悍的能捕获所有异常,非常之方便,所以也想在mfc里找同类功能呵呵!
以目前mfc异常捕获的能力,在我写错代码时候我依靠异常信息得不到任何帮助!但在c#下我立马就知道了错误原因?谢谢了!
雪影 2009-08-18
  • 打赏
  • 举报
回复
楼主似乎学习C++没几天
1.没有公共函数函数这个概念,只有全局函数
2.C++异常原理楼主还没有明白。

要获取所有异常使用catch(...
否则只能要想获取异常,你就得知道可能抛出的异常类型。
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
问题一:怎样吧函数添加到公共域?

什么叫“公共域”?我不懂。
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gxy2005 的回复:]
TRY
{
}
CATCH(CException, pEx)
{
  // Simply show an error message to the user.
  pEx->ReportError();
}
-----------------
这个只能捕获CException类型的,其它异常都捕获不到?
[/Quote]
汗死,CException是大类,包含所有的异常类。
CSimpleException
CInvalidArgException
CMemoryException
CNotSupportedException
CArchiveException
CFileException
CResourceException
COleException
CDBException
COleDispatchException
CDaoException
CInternetException

这些都是从它派生出来的
GXY2005 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tr0j4n 的回复:]
Global?什么东东
[/Quote]
这个就是工程中的那个名字为Global的文件夹!
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
我楼上的代码会弹个框出来告诉你错误信息的
GXY2005 2009-08-18
  • 打赏
  • 举报
回复
TRY
{
}
CATCH(CException, pEx)
{
// Simply show an error message to the user.
pEx->ReportError();
}
-----------------
这个只能捕获CException类型的,其它异常都捕获不到?
GXY2005 2009-08-18
  • 打赏
  • 举报
回复
楼上的你好:
1.在工程的.h文件中申明,在.cpp文件中定义就行了
这样用的时候需要引用头文件,不是公共函数的意思吧!可::直接调用的才是公共函数吧?
2.给你一个例子参考一下
你的异常是已知异常,我想捕获未知的异常,程序没有规划的意外错误?
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
TRY
{
}
CATCH(CException, pEx)
{
// Simply show an error message to the user.
pEx->ReportError();
}
雪影 2009-08-18
  • 打赏
  • 举报
回复
1.在工程的.h文件中申明,在.cpp文件中定义就行了
2.给你一个例子参考一下
// exceptions_trycatchandthrowstatements.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
char *buf;
try {
buf = new char[512];
if( buf == 0 )
throw "Memory allocation failure!";
}
catch( char * str ) {
cout << "Exception raised: " << str << '\n';
}
}

catch里面的类型根据try代码块中的throw类型一致
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
Global?什么东东

16,472

社区成员

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

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

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