找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2880|回复: 4

[求助] 打开一个dwg并设置为当前文档?求acedSyncFileOpen使用方法

[复制链接]

已领礼包: 112个

财富等级: 日进斗金

发表于 2016-7-17 17:31:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在AutoCAD中打开图形,并且显示在图形窗口中,可以使用acedSyncFileOpen()函数。需要注意的是,这个函数只能在单文档模式中工作,
用户可以在AutoCAD“选项”对话框的“系统”选项卡中进行设置,或者在主函数中添加下面的语句:
acrxDynamicLinker->registerAppNotMDIAware(pkt);
具体的函数如下:
//加载模板文件
void LoadTemplate()
{
char fname[50];
strcpy(fname,"E:\\TMCAD\\TMCADtukuang\\A3.DWG");

#ifndef _ACAD2000
Acad::ErrorStatuses;  
es = acedSyncFileOpen(fname);
#else
acDocManager->appContextOpenDocument(fname);
#endif
}

以上代码是网上搜索得到了,得到了多人转载的同一份代码,我在编译时出现了以下问题:
acrxEntryPoint.obj : error LNK2001: 无法解析的外部符号 "enum Acad::ErrorStatus __cdecl acedSyncFileOpen(char const *,wchar_t const *)" (?acedSyncFileOpen@@YA?AW4ErrorStatus@Acad@@PBDPB_W@Z)
请问如何解决?
在帮助文档中函数的定义如下:
Acad::ErrorStatus acedSyncFileOpen(
    const ACHAR * pszFileToOpen,
    const wchar_t* wszPassword = NULL
);
帮助中明显是两个参数,为何上文中只使用了一个参数?


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2016-7-17 18:52:31 | 显示全部楼层
第二个参数  const wchar_t* wszPassword = NULL
你只给一个参数的话,第二个参数默认是NULL的。

点评

编译出错时如何处理?  详情 回复 发表于 2016-7-17 22:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 112个

财富等级: 日进斗金

 楼主| 发表于 2016-7-17 22:32:37 | 显示全部楼层
XDSoft 发表于 2016-7-17 18:52
第二个参数  const wchar_t* wszPassword = NULL
你只给一个参数的话,第二个参数默认是NULL的。

编译出错时如何处理?

点评

这种出错信息都是你没设置LIB, 把 acad.lib 添加你工程的 lib附加目录里面试试。  详情 回复 发表于 2016-7-18 13:04
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2016-7-18 13:04:42 | 显示全部楼层
革天明 发表于 2016-7-17 22:32
编译出错时如何处理?

这种出错信息都是你没设置LIB, 把 acad.lib 添加你工程的 lib附加目录里面试试。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 112个

财富等级: 日进斗金

 楼主| 发表于 2016-7-19 09:45:16 | 显示全部楼层
结贴:
appContextOpenDocument使用这个函数吧,acedSyncFileOpen估计现在很少能用上。
另外在定义命令时,使用ACRX_CMD_SESSION代替ACRX_CMD_TRANSPARENT
谢谢edata的指导!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 16:36 , Processed in 0.225833 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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