插件工程在 CadProject/src/cad_mcp_plugins(8 个 cpp/h),本次一并整合进 code2026。 移植改动: - 源码拷到 SourceCode/Code2026/cad_mcp_plugins/;cadsdk.h -> KTCad.h - 输出是普通 DLL(.dll),由 cad_mcp_frame 运行时 LoadLibrary,不注册 ARX 命令 - 新增 cad_mcp_plugins/cmakelists.txt:按 code2026 惯例 (target_set_name_and_suffix ".dll" / target_link_objectarx / 预编译头 / SUB_ARX) - mcp_plugin_api.h 从 cad_mcp_frame/inc 上移到 SourceCode/Code2026/inc: frame 与 plugins 共用,且在 ShsGlobalIncludes 的 include 路径里两边都可见; frame 的 CMake 去掉已删除的本地 inc 目录 - 顶层在同一个 C++11+ 条件里挂载 add_custom_module_2(cad_mcp_plugins CadMcpPlugins) - 中望适配:源码里的 #pragma comment(lib,"rxapi.lib") 在中望下没有这个库(叫 ZwRx.lib), 该 pragma 与导出名都按 #ifdef ZWCAD 分开(中望导出 zcrxGetApiVersion); frame 里 GetProcAddress 查插件版本号的函数名同样按平台分 验证: - R230:cad_mcp_frame.arx 826 KB + cad_mcp_plugins.dll 866 KB,已自动部署 - Z2026:cad_mcp_frame.zrx 825 KB + cad_mcp_plugins.dll 864 KB,已自动部署 - 配置里 16 个 c++_dll 工具的工厂函数(CreateXxxTool)全部出现在 dll 导出表里 - 所有 .cpp/.h 为 UTF-8 with BOM 未做:没有在 CAD 里实跑。另外配置文件本身没有随构建部署(set_debug_post_build 只拷产物), 需要把 cad-mcp-frame.json(或改名 mcp_config.json)与 LISP 目录放到部署目录, 否则 frame 起来后 LoadAndRegister 失败会直接自关。详见 cad_mcp_frame-review.md。
51 lines
1.2 KiB
C++
51 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#define WINVER 0x0600
|
|
|
|
#pragma warning(disable: 4786)
|
|
|
|
//- 'DEBUG workaround' below prevents the MFC or ATL #include-s from pulling
|
|
//- in "Afx.h" that would force the debug CRT through #pragma-s.
|
|
#if defined(_DEBUG) && !defined(AC_FULL_DEBUG)
|
|
#define _DEBUG_WAS_DEFINED
|
|
#undef _DEBUG
|
|
#pragma message ("Compiling MFC / STL / ATL header files in release mode.")
|
|
#endif
|
|
|
|
#pragma pack (push, 8)
|
|
#pragma warning(disable: 4786 4996)
|
|
|
|
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
|
|
|
#include <afxwin.h> // MFC core and standard components
|
|
#include <afxext.h> // MFC extensions
|
|
|
|
#ifndef _AFX_NO_OLE_SUPPORT
|
|
#include <afxole.h> // MFC OLE classes
|
|
#include <afxodlgs.h> // MFC OLE dialog classes
|
|
#include <afxdisp.h> // MFC Automation classes
|
|
#endif
|
|
|
|
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
|
|
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
|
#include <afxcmn.h> // MFC support for Windows Common Controls
|
|
#endif
|
|
|
|
#include <map>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <afxdhtml.h>
|
|
#include <afxwin.h>
|
|
|
|
extern HINSTANCE _hdllInstance;
|
|
|
|
#ifdef _DEBUG_WAS_DEFINED
|
|
#define _DEBUG
|
|
#undef _DEBUG_WAS_DEFINED
|
|
#endif
|
|
|