关于try,catch,的问题

忠向 2003-05-30 10:26:54
新装了VS.NET 2003,想把以前的程序转移过来,以前使用VC6。

发现新的系统中不再支持在{try,catch}中支持内存分配,即不能在{try,catch}中使用alloc函数分配内存,我的程序里面要在异常处理中报错,而异常返回的是WCHAR字符,所以在{try,catch}中要出现字符转换,请教各位,这个问题有解决办法吗?

难道又要我回到VC6?

下面是我的程序代码和编译出错信息:

try
{
...
}
catch(Exception e)
{
strException += W2CA(e.cause);
AfxMessageBox(strException);
}

error C3204: “_alloca”不能从 catch 块内调用

先谢过!
...全文
102 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
忠向 2003-06-10
  • 打赏
  • 举报
回复
看来问题的实质不在VS.NET,而是VISIBROKER的问题,谢谢,请参考帖子

http://expert.csdn.net/Expert/TopicView1.asp?id=1896835
,谢谢!
Muf 2003-06-06
  • 打赏
  • 举报
回复
这些库如果不是用extern"C"或.def文件导出的,最好在vc.net下重编译。
忠向 2003-06-06
  • 打赏
  • 举报
回复
正是这个想法,可惜这些库引用了C++的库,VC.NET2003又删除了以往微软自带的C++IO库(stream相关的),我全部将用到的微软自带的C++IO库换成标准C++IO库,仍旧报错,就是上面的那个“LINK2019”,这是烦呀,看来我得回到VC6了。
xzygod 2003-06-06
  • 打赏
  • 举报
回复
这应该是vc7.1改动之处 ,7.0可以在catch中使用if,现在也不行了
忠向 2003-06-03
  • 打赏
  • 举报
回复
当然不是,这里只是一个演示。谢谢答复。

为什么我使用VC.NET链接到低版本的lib,链接总是出错,
LINK2019:无法解析的外部符号,实际上,我的lib中已经实现了该函数呀,有一点可疑之处是,这些函数都涉及到了STL中的stream,我已经将原来的引用MS C++的定义部分都转移到了STD C++,请问,这是什么原因呢?
tjq_tang 2003-06-02
  • 打赏
  • 举报
回复
VC.NET可以使用VC6或者其他低版本的VC生成的库吗?
当然可以
楼主你try
{}catch(exception e)
{
}
应该对应有异常对象,不会Exception就可以调试得通吧
忠向 2003-06-02
  • 打赏
  • 举报
回复
有新的问题,VC.NET可以使用VC6或者其他低版本的VC生成的库吗?
忠向 2003-06-02
  • 打赏
  • 举报
回复
不错,谢谢!
Muf 2003-05-31
  • 打赏
  • 举报
回复
可否改W2CA为CW2A
忠向 2003-05-31
  • 打赏
  • 举报
回复
唉,没人理俺呀!?

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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