明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: highflybir

[【高飞鸟】] 越飞越高讲堂(2)CAD的API编程指南(上)--DynamicWrapperX

    [复制链接]
 楼主| 发表于 2011-3-13 00:36:49 | 显示全部楼层
发表于 2011-3-17 22:36:52 | 显示全部楼层
这个网址要注册才能进去的
发表于 2011-4-24 21:03:59 | 显示全部楼层
本帖最后由 chlh_jd 于 2011-4-24 21:15 编辑

请教版主,我已经将.dll文件复制指定文件夹,但创建VLA对象仍然提示错误“VLA-OBJCET nil”


  1. (startapp (strcat "regsvr32.exe " (getenv "systemdrive")  "//windows//system32//dynwrapx.dll"))
  2.   (setq *APP (vlax-get-acad-object))
  3.   (setq *DOC (vla-get-ActiveDocument *APP))
  4.   (setq hCAD (vla-get-hwnd *APP))
  5.   (setq hDOC (vla-get-hwnd *DOC))
  6.   (setq wrap (vlax-create-object "DynamicWrapperX"))
用DLL Export Viewer查看器查看后发现函数只有 5个函数
DLLCanUnloadNow
DLLGetClassObject
DllInstall
DllRegisterServer
DllUnregisterServer
是我安装运行错了吗?

发表于 2011-4-24 21:08:16 | 显示全部楼层
本帖最后由 highflybird 于 2011-4-24 21:09 编辑

手动在dos状态下运行可以吗?
开始,运行 regsvr32 dynwrapx.dll 看成功了吗?
发表于 2011-4-24 21:17:35 | 显示全部楼层
在开始菜单里面运行成功,还是无法创建这个VLA对象,我用的ACAD2004不知道是不是ACAD版本太低的原因
发表于 2011-4-24 21:18:45 | 显示全部楼层
本帖最后由 chlh_jd 于 2011-4-24 21:29 编辑

经过重新启动计算机后,在ACAD2004和ACAD2009测试仍然无法创建dynwrapX.dll的VLA对象,我用的系统是XP SP2(补丁升级为SP3)不知道哪里出错了
发表于 2011-4-24 21:30:59 | 显示全部楼层
呵呵,暂时不知道这个原因
发表于 2011-4-24 21:42:24 | 显示全部楼层
测试在其他语言呢?譬如VB,VBA,VBS里面看看有没有?
发表于 2011-4-24 21:54:56 | 显示全部楼层
本帖最后由 chlh_jd 于 2011-4-24 21:57 编辑

其他语言,我基本不懂(只能略微看懂),dynwrap.dll这个文件是系统自带的吗,还是额外加装的呢,金山毒霸网页说这是系统自带的..http://file.ijinshan.com/dll_dynwrap_dll.shtml
搜索了下,发现了可提供下载的地址http://www.script-coding.com/dynwrapx_eng.html不知道和您上传的是否一样?
使用下列语句也是提示一样的错误。

  1. (vlax-Import-Type-Library
  2.    :tlb-filename
  3.    (strcat (getenv "systemdrive")  "//windows//system32//dynwrapx.dll")
  4.    :methods-prefix
  5.    "wm-"
  6.    :properties-prefix
  7.    "wp-"
  8.    :constants-prefix
  9.    "wc-"
  10. )
复制代码



发表于 2011-4-24 21:57:37 | 显示全部楼层
本帖最后由 highflybird 于 2011-4-24 22:11 编辑

回复 chlh_jd 的帖子

这个是额外加装的。不要相信金山毒霸这种弱智的软件。
看来可能是你的防火墙阻止。
把下面的代码抄入到txt文本文件,然后改扩展名为.vbs,再运行看看能出现hello,world的消息框吗?

  1. Set DX = CreateObject("DynamicWrapperX")
  2. With DX
  3. .Register "user32.dll","MessageBox","i=lssl","r=l"
  4. End With
  5. DX.MessageBox  0,"Hello,World!","Test",0
  6. Set DX = nothing


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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-22 13:26 , Processed in 0.187150 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表