首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >char到ACHAR + objectARX

char到ACHAR + objectARX
EN

Stack Overflow用户
提问于 2014-04-08 04:08:41
回答 1查看 2K关注 0票数 0

我正试图将以前的代码转换为VS 2010。下面提到了我试图转换的代码。函数addCommand的定义如下

代码语言:javascript
复制
addCommand(const ACHAR * cmdGroupName,  const ACHAR * cmdGlobalName, const ACHAR * cmdLocalName, Adesk::Int32 commandFlags, AcRxFunctionPtr FunctionAddr,AcEdUIContext *UIContext=NULL,  int fcode=-1,  HINSTANCE hResourceHandle=NULL,  AcEdCommand** cmdPtrRet=NULL)

第三个必需的参数是ACHAR类型。函数的调用方式如下。

代码语言:javascript
复制
char cmdLocRes[65];

// If idLocal is not -1, it's treated as an ID for
// a string stored in the resources.
if (idLocal != -1) {

    // Load strings from the string table and register the command.
    ::LoadString(_hdllInstance, idLocal, cmdLocRes, 64);
    acedRegCmds->addCommand(cmdGroup, cmdInt, cmdLocRes, cmdFlags, cmdProc);

我的问题是变量cmdLocRes是char类型,但是参数需要是ACHAR类型。

我怎样才能转换相同的?

EN

回答 1

Stack Overflow用户

发布于 2014-05-19 10:52:59

  1. ACHAR是wchar_t文件AdAChar.h中的Autodesk (由Autodesk在文件AdAChar.h中创建),因此问题是如何将字符转换为wchar_t。
  2. 在更广泛的背景下,这个问题是因为unicode的存在。Linux和Windows程序员通常在没有相互理解的情况下讨论它。因为我也不明白,所以我无法解释。对于急切的海狸,有线程:t and wstrings? What are some alternatives to wide characters?
  3. 折页可能会给你一个如何转换它的想法。 // Convert char to wchar_t char cmdLocRes65; //备注:确保cmdLocRes包含元素! cmdLocRes = 'A'; cmdLocRes1 = '\0'; //获得一个wstringstream流 性传播疾病::wstringstream流str; //将char数组写入Write流 str << cmdLocRes; //从wstring流中获取wstring wstring= str.str(); //从wstring获取一个wchar_t const wchar_t *chr1 1= wstr.c_str(); 我们看到wstr.c_str();//我们看到wchar_t == ACHAR!
  4. 最好考虑使用wchar_t cmdLocRes65而不是char cmdLocRes65!
  5. 不好意思,代码样式,但这个文本字段是另一个很好的例子,如何不去做它。我花了更长的时间尝试格式化代码块(请看它!)而不是写答案。天啊!
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22927354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档