AutoCAD ObjectARX 开发出现“不支持尝试执行的操作”

最近更新于 2026-05-26 16:11

环境

  • Windows 11 25H2
  • Visual Studio 2026
  • AutoCAD Mechanical 2027
  • ObjectARX 2027
  • C++23
  • MFC

错误描述

首先弹出“不支持尝试执行的操作”
file

上一个确定后,出现致命错误。同时出现错误报告,点关闭后软件关闭。这是最近两个月开发以来第一次遇到可以把 AutoCAD 崩掉的情况,前面就算有异常也会被 AutoCAD 捕获出来,不会导致 AutoCAD 崩溃,这是直接把 AutoCAD 干死了,推测有可能内存访问越界了。
file

解决

问题根本就是调用 MFC 对话框的地方没有加

CAcModuleResourceOverride resOverride;

最开始我是使用 String Table 来存储字面值,为了正常读取,都加了 “CAcModuleResourceOverride resOverride;” 的,所以没有异常。近期我改用 gettext 来支持国际化,我预想就是不需要使用 “CAcModuleResourceOverride resOverride;” 来切换上下文,然后就删掉了。结果忽略了 MFC 的对话框和控件是有定义 ID 的,AutoCAD 中不同扩展程序和主程序可能有同样的资源 ID。如果不使用 “CAcModuleResourceOverride resOverride;” 切换到当前 arx 文件的资源,就可能访问了其它程序的 ID 资源,这样就触发了这个问题。

AutoCAD ObjectARX 开发出现“不支持尝试执行的操作”
Scroll to top
打开目录