乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 140|回复: 8

访问工具栏时出错

[复制链接]

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2015-3-18 02:37:59 | 显示全部楼层 |阅读模式
您好,
当我在ACAD 2012中执行第二行时,它抛出了一个错误,如所附的屏幕截图所示
  1. Dim toolbars As AcadToolbars
  2. toolbars = Application.MenuGroups.item(0).Toolbars

系统详细信息为:
XP-SP3
AutoCAD 2012
该程序在Windows 7中编译,目标设置为“AnyCPU”
以下dll与CopyToLocal一起使用,设置为False。
AcDbMgd.dll
AcMgd.dll
AcCoreMgd.dll
Autodesk.AutoCAD.Interop.dll
Autodesk.AutoCAD.Interop.Common。dll<br>请提供解决方案。<br>谢谢<br>问候,<br>

v1xmczpaipf.png

v1xmczpaipf.png

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2015-3-18 02:46:47 | 显示全部楼层
您确定您链接的互操作程序集来自与您的AutoCAD (x86或x64)相同的平台(inc-win32或inc-x64)吗?此外,我希望您将项目构建为x86或x64,而不是AnyCPU...
哦,我明白了:
这是错误的。当使用Interop时,必须编译为x86和x64,而不是AnyCPU。
回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2015-3-18 02:55:21 | 显示全部楼层
我记得:Jeffrey Richter编写的x86和x64程序集具有相同的清单。它们的不同之处在于IL代码。因此,可以作为引用程序集或x86或x64绑定(将相同)。但是,当您的程序能够工作时,它必须使用具有相应目标平台的程序集<Jeffrey写了一篇关于Microsoft的.Net Framework程序集的文章。我不知道Autodesk的互操作程序集是否正确。我更愿意接受再保险,并从相应的目录(inc-win32或inc-x64)连接链接。
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2015-3-18 03:08:20 | 显示全部楼层
这是错误的。使用互操作时,必须编译为x86和x64,而不是AnyCPU

感谢您的快速回复。实际上,我的程序必须在32位和64位的XP和WIN7系统中工作。你是说我需要为每个32位和64位版本编译和交付单独的DLL吗
假设,如果客户机在WIN7 64位操作系统中安装了32位AutoCAD,我必须给他们提供哪个版本的AutoCAD DLL?请澄清。
谢谢您的问候,
gsktry
回复

使用道具 举报

2

主题

7

帖子

1

银币

初来乍到

Rank: 1

铜币
15
发表于 2015-3-18 03:18:01 | 显示全部楼层
是的,当您使用Interop程序集时,您必须将代码分别编译为x86和x64。
据我所知-您不能在Windows x64上安装AutoCAD x86。过去,欧特克的一些基于AutoCAD的垂直产品仅为x86,因此也可以安装在Windows x64上。但是如果您使用通常的AutoCAD-那么您不能在Windows x64上安装这样的AutoCAD x86。
您可以使用
后期绑定
而不是直接使用的Interop程序集。在这种情况下,可以将您的项目编译为AnyCPU。
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2015-3-18 07:48:54 | 显示全部楼层
查看 Autodesk.Windows.ComponentManager 和/或 Autodesk.AutoCAD.Custom 以获取非 COM 解决方案。
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2015-3-18 09:25:08 | 显示全部楼层
您说代码适用于 AutoCAD 2012,但您列出了对“accoremgd.dll”的引用,该引用仅适用于 AutoCAD2013 或更高版本。考虑到您遇到的错误,我怀疑您以某种方式使用了AutoCAD2013或更高版本的引用集(acdbmgd.dll/accoremgd.dll,acmgd.dll和COM PIAs),可能是从AutoCAD2013或更高版本的ObjectARX SDK下载的。
请确保使用适用于 AutoCAD2012 的 ObjectARX SDK 中的这些 DLL,然后重试。
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2015-3-18 12:28:00 | 显示全部楼层
谢谢你,安德烈。正如您所说,我删除了互操作程序集,并将编码更改为后期绑定。问题现在解决了。袁:对不起。我在帖子中错误地包含了“accoremgd.dll”。实际上,它不在我的参考列表中。
谢谢
gsktry
回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2015-3-19 09:17:14 | 显示全部楼层

这表明您可能引用了错误的互操作程序集版本,可能是比 Acad2012 更新的版本。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 04:03 , Processed in 0.163469 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表