明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: iceberg2509

vlisp如何打开多重选择文件对话框

  [复制链接]
发表于 2005-9-29 23:46:00 | 显示全部楼层

(setq x (vlax-create-object "MSComDlg.CommonDialog") 返回的值为nil啊。

后面的语句根本不执行。

发表于 2005-9-30 21:46:00 | 显示全部楼层
本帖最后由 作者 于 2005-10-1 7:53:01 编辑

虽然可以改成
(vlax-put-property x "Flags" (+ 512 524288))
来调用新的打开文件对话框,但返回值一直都调不出来。
但用同样的方法在VBA中使用则没有问题,大家可以看看怎样解决。

主要原因是文件名间的分隔是用chr(0)做为分隔,在LISP无法解决。
而普通老式对话框返回的文件名是DOS式的文件名,所以文件名间的分隔用是的空格为分隔,所以在LISP并无影响。
发表于 2005-9-30 21:57:00 | 显示全部楼层
需要控件支持,返回值为 nil 是因为没有安装通用对话框控件
发表于 2005-10-1 00:14:00 | 显示全部楼层

是不是“C:\WINDOWS\system32\comdlg32.ocx"?

如何安装通用对话框控件呢?

发表于 2005-10-1 22:17:00 | 显示全部楼层
本帖最后由 作者 于 2005-10-1 22:52:08 编辑

6楼跟7楼的兄弟说可以,我是编LSP程序,怎么运行也是返回NIL啊?需要用,急盼解决!
发表于 2005-10-1 22:54:00 | 显示全部楼层

要额外安装也要写在程序中啊,程序要通用嘛!

发表于 2005-10-2 11:27:00 | 显示全部楼层
高手们都去哪了啊?快解决呀!
发表于 2005-10-6 23:25:00 | 显示全部楼层
这不是注册问题,MSComdlg需要安装MS的任何开发工具后才可以使用。如果是XP系统还可以使用 "UserAccounts.CommonDialog"

'MSComDlg.CommonDialog' is a licensed control. It works from client side IE hosted script only if a Microsoft dev tool (like VStudio) is installed on the client to provide a design time license.
发表于 2005-10-7 14:48:00 | 显示全部楼层

Ea兄,如跟系统有关,那要是用的WIN2K或WIN98系统怎么办呢?我WIN2K注册了那个comdlg32.ocx,为什么还是不行?

发表于 2005-10-7 18:22:00 | 显示全部楼层
comdlg32 在98以上都可以用,你可以先安装vb6然后试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-1 06:37 , Processed in 0.168782 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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