乐筑天下

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

如何获取AutoCAD的当前语言名称(仅托管C++代码)

[复制链接]

5

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2014-5-26 10:21:34 | 显示全部楼层 |阅读模式
我仍在寻找一个舒适的解决方案,在加载任何AutoCAD线型之前,必须首先检查当前AutoCAD版本和当前语言包。我该如何做?有什么想法吗?   静态void print_LocalInfo ( void )。
{。
//。
//获取RoamableRootFolder :。
//" C:\ Users \[log in name]\ AppData \ Roaming \ Autodesk \ AutoCAD 2015 \ r 20.0 \ enu \ " 。
//。

const ACHAR * proamableroot folder;。

acdbHostApplicationServices()-> getroamableroot folder(proamableroot folder);。

//如何用非托管C++获取语言名?
//x Value:语言名称。

CString ENU = " ENU ";。
CString DEU = " DEU ";。

//如何用非托管C++获取区域性名称?
//。
//"美国英语"//美国英语。
// "de-DE" //德语-德国。

CString RF = proamableroot folder;。
CString ts = rf,中频(射频,ENU。GetLength() - 1,ENU。GetLength());。

::acutPrintf(_ T(" \ n您的语言是:%s)),(ENU == ts。MakeUpper())?L“English”:L“Deutsch”);。
}。
参考:另请参见 Windows 7的国家语言支持- (NLS) API参考信息。

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

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

使用道具 举报

4

主题

15

帖子

3

银币

初来乍到

Rank: 1

铜币
31
发表于 2014-5-26 14:53:35 | 显示全部楼层
也许这可以用acrxdynamicrenk::product lcid来实现。
回复

使用道具 举报

5

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2014-5-26 21:28:37 | 显示全部楼层
还有一个区域设置系统变量(getvar“locale”)
回复

使用道具 举报

5

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2014-5-27 02:26:51 | 显示全部楼层

您好,Jar,
感谢您的帮助,使用方法
acrxDynamicLinker->ProductLcid()
我得到了以下结果:
AutoCAD English:ProductLcid=1033
带有德语语言包的AutoCAD Englusch:ProductLcid=1031
Kean Walmsley编写了一个.NET示例:
,使用.NET确定AutoCAD的语言:http://through-the-interface.typepad.com/through_the_interface/2014/03/determining-autocads-language-using-net.html
使用系统全球化
使用Autodesk.AutoCAD.ApplicationServices
使用Autodesk.AutoCAD.Runtime
名称空间语言信息
{
公共类命令
{
[CommandMethod(“LANG”)]
公共静态void,其语言为()
{
var cult=new-CultureInfo(SystemObjects.dynamicsolder.ProductLcid)
Application.DocumentManager.MdiActiveDocument.Editor。WriteMessage(“AutoCAD产品的语言为{0}。”,cult.EnglishName)
}
}
}
我的问题是如何在C++/ARX(非CLR)中使用类似的类文化信息
如何使用函数:GetLocaleInfo来确定本地化ID
回复

使用道具 举报

5

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
32
发表于 2014-5-27 02:30:03 | 显示全部楼层

嗨,nullptr,
两个版本都给我相同的结果
AutoCAD 英语: (getvar “LOCALE”) = “DEU”
AutoCAD Englisch with German Language Pack: (getvar “LOCALE”) = “DEU”
感谢您的帮助
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-2-5 06:42 , Processed in 0.393614 second(s), 62 queries .

© 2020-2025 乐筑天下

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