VS2017中使用ObjectARX 2019 wizard的 ArxWizMFCSupport向导出现的bug,提示脚本错误.
实际原因类似在arx2012向导的问题,需要修改C:\Program Files (x86)\Autodesk\ObjectARX 2019 Wizards\ArxWizMFCSupport\HTML\1033下的default.htm
首先查找vs2017的VsWizard.dll文件是否注册,如果注册了,会在注册表中有一个 计算机\HKEY_CLASSES_ROOT\VsWizard.WizCombo.15.0 的注册表项,
找到这项下面的clsid默认值,复制这段大括号内的值
注:如果没有这个值,那么可能是你的这个dll没有注册,你可以使用管理员启动cmd.exe,然后用regsvr32注册VsWizard.dll
如:
regsvr32 "D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VsWizard.dll"
注册即可,其中的dll路径换成你自己的vs路径.
记事本之类的软件,比如notepad++打开C:\Program Files (x86)\Autodesk\ObjectARX 2019 Wizards\ArxWizMFCSupport\HTML\1033下的default.htm
查找classid替换掉.原版的内容我以及找不到了,如果有多个<OBJECT>确保只有一个是有效的.
另外还需要修改以下两处.第一行的html注释 <!-少了一个 "-" 符号,可能会导致html编辑器打开的时候没有高亮的效果.
其次是strURL += "Common7/IDE/VC"这句没有用,会导致css无法获取,向导对话框会显示蓝色的字,页面错乱,并且这句没有分号结束.
去掉这句后向导界面正常了.
后记,当我修正了这个bug后,去官方的GitHub,发现早已经修复.很是尴尬.次文仅当解析一下这个问题..
附上官方的修正后的html源码吧..
来源地址ObjectARX-Wizards/default.htm at ForAutoCAD2019 · ADN-DevTech/ObjectARX-Wizards · GitHub
<!-- Copyright (c) Autodesk, Inc. All rights reserved. -->
<!--Madhukar: To test various intricate behaviors of VS WIZARD
Use:
var myMsgBox = new ActiveXObject("wscript.shell")
myMsgBox.Popup (strURL)
-->
<HTML DIR="LTR">
<HEAD>
<TITLE></TITLE>
<META content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes">
<LINK ID="LINKURL" REL="stylesheet" HREF="../../../../../1033/NewStyles.css">
<SCRIPT>
var strURL =window.external.FindSymbol ("PROJECT_TEMPLATE_PATH");
strURL += "\\" ;
strURL += window.external.GetHostLocale () ;
strURL += "\\"+"NewStyles.css";
/*Madhu: Not required in production
var myMsgBox = new ActiveXObject("wscript.shell")
myMsgBox.Popup (strURL)*/
document.styleSheets ("LINKURL").href =strURL ;
</SCRIPT>
<!-- -->
<!-- The SYMBOL tag is used to set the default values for the user-defined symbols.-->
<!-- -->
<SYMBOL NAME="CLASS_NAME_ROOT" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="CLASS_NAME" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="CHILDCLASS_NAME" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="BASE_CLASS" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="CHILD_DIALOG_NEEDED" TYPE="bool" VALUE="false"></SYMBOL>
<SYMBOL NAME="CHILD_RESOURCE_NEEDED" TYPE="bool" VALUE="false"></SYMBOL>
<SYMBOL NAME="FILTER_BASE" TYPE="text" VALUE="All"></SYMBOL>
<SYMBOL NAME="HEADER_FILE" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="IMPL_FILE" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="CHILDHEADER_FILE" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="CHILDIMPL_FILE" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="HEADER_FILE_VALID" TYPE="bool" VALUE="false"></SYMBOL>
<SYMBOL NAME="IMPL_FILE_VALID" TYPE="bool" VALUE="false"></SYMBOL>
<SYMBOL NAME="INCLUDE_HEADER" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="IDD_DIALOG" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="CREATE_DIALOG" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="AUTOMATION_NONE" TYPE="radio" VALUE="true"></SYMBOL>
<SYMBOL NAME="AUTOMATION" TYPE="radio" VALUE="false"></SYMBOL>
<SYMBOL NAME="CREATABLE" TYPE="radio" VALUE="false"></SYMBOL>
<SYMBOL NAME="TYPEID" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="TEMPLATE_HEADER" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="TEMPLATE_IMPL" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="DISPIID_STATIC_CONST_GUID_FORMAT" TYPE="text"></SYMBOL>
<SYMBOL NAME="DISPIID_REGISTRY_FORMAT" TYPE="text"></SYMBOL>
<SYMBOL NAME="CLSID_REGISTRY_FORMAT" TYPE="text"></SYMBOL>
<SYMBOL NAME="CLSID_IMPLEMENT_OLECREATE_FORMAT" TYPE="text"></SYMBOL>
<SYMBOL NAME="ACCESSIBILITY" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="COLESERVERDOC" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="COLECLIENTITEM" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CCOLORDIALOG" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CCONNECTIONPOINT" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CDOCOBJECTSERVER" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CDOCOBJECTSERVERITEM" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CFILEDIALOG" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CFONTDIALOG" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CPAGESETUPDIALOG" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CPRINTDIALOG" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CINTERNETSESSION" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CPROPERTYPAGE" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CCONTROLBAR" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="CVIEW" TYPE="checkbox" VALUE="false"></SYMBOL>
<SYMBOL NAME="MAX_DOC_TYPE_NAME" TYPE="num" VALUE="15"></SYMBOL>
<SYMBOL NAME="MAX_FILE_NEW_NAME_SHORT" TYPE="num" VALUE="15"></SYMBOL>
<SYMBOL NAME="MAX_FILE_TYPE_ID" TYPE="num" VALUE="39"></SYMBOL>
<SYMBOL NAME="MAX_FILE_NEW_NAME_LONG" TYPE="num" VALUE="40"></SYMBOL>
<SYMBOL NAME="MAX_FILTER_NAME" TYPE="num" VALUE="100"></SYMBOL>
<SYMBOL NAME="DOCUMENT_TYPE_NAME" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="DOCUMENT_FILE_EXTENSION" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="DOCUMENT_FILE_TYPE_ID" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="DOCUMENT_FILE_NEW_NAME_SHORT" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="DOCUMENT_FILE_NEW_NAME_LONG" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="DOCUMENT_FILTER_NAME" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="DOCUMENT_MAIN_FRAME_CAPTION" TYPE="text" VALUE=""></SYMBOL>
<SYMBOL NAME="MERGE_FILE" TYPE="bool" VALUE="false"></SYMBOL>
<SYMBOL NAME=&