VS2017中使用ObjectARX 2019 wizard的 ArxWizMFCSupport向导出现的bug修复前因后果

本文详细介绍了在Visual Studio 2017中使用ObjectARX 2019 Wizard时遇到的ArxWizMFCSupport向导脚本错误问题的解决过程。通过修改default.htm文件,替换classid,修复html注释符号,以及删除无效的代码行,成功解决了向导界面显示异常的问题。尽管官方GitHub已修复此bug,但本文仍为遇到同样问题的开发者提供了详细的解决方案。
摘要由CSDN通过智能技术生成

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=&
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值