找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 5343|回复: 0

遇到 External Exception EEFFACE 错误的解决办法

[复制链接]

57

主题

3

回帖

386

积分

管理员

积分
386
发表于 2022-4-23 09:36:23 | 显示全部楼层 |阅读模式
【转】遇到 External Exception EEFFACE 错误的解决办法
1、安装一个补丁包后重新编译源程序。参见:http://www.respower.com/~earlye/ ... ndardExceptions.htm
2、修改注册表:
假设出错的应用程序名为“Project1.exe”,打开注册表,找到如下主键:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options]
新建一个“Project1.exe”项,然后再其下创建一个字符串值,键值名为“DisableHeapLookAside”,内容设为“1”即可(有时候留空也有效)。

上面两种方法只试过了第一种,程序脱离IDE运行没有再出现这个错误。但偶尔在IDE中运行还是会弹出这个错误(例如ShellExecute函数经常会弹出这个错误)。
对于“External Exception EEFFACE”这个错误产生的原因在于---bcb采用的vcl库是由pascal语言写的,当C++代码产生的异常对象不是vcl提供的Exception类的子类对象时,就会报出这个错误。可以新建工程将下面代码测试一遍就会发现这个问题。
[url=][/url]
//---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;class MyException1{public:        MyException1(AnsiString msg){Message=msg;}public:        AnsiString Message;};class MyException2:public Exception{public:        MyException2(AnsiString msg):Exception(msg){Message=msg;}public:        AnsiString Message;};//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)        : TForm(Owner){}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){      throw MyException1("test1");}//---------------------------------------------------------------------------void __fastcall TForm1::Button2Click(TObject *Sender){     throw MyException2("test2");}//---------------------------------------------------------------------------[url=][/url]





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|春软虚拟实验室交流社区 ( 鲁ICP备19005754号-3 )

GMT+8, 2025-4-3 23:23 , Processed in 0.064753 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表