小编Nic*_*ick的帖子

设计字符串本地化的最佳方式

这是一个普遍的问题,对意见持开放态度.我一直在努力想出一个很好的方法来设计Windows MFC应用程序和相关实用程序的字符串资源本地化.我的愿望是:

  • 必须在代码中保留字符串文字(而不是替换为宏#define资源ID),以便消息仍然可以内联读取
  • 必须允许本地化的字符串资源(duh)
  • 不得强加额外的运行时环境限制(例如:依赖于.NET等)
  • 应该对现有代码的侵略最小(修改越少越好)
  • 应该是可调试的
  • 应生成可通过常用工具编辑的资源文件(即:通用格式)
  • 不应使用复制/粘贴注释块来保留代码中的文字字符串,或其他任何可能导致去同步的内容
  • 很高兴允许静态(编译时)检查每个"标记"字符串是否在资源文件中
  • 允许跨语言资源字符串池(对于各种语言的组件,例如:本机C++和.NET)会很高兴

我有一种方法可以在某种程度上满足我的所有愿望清单,除了静态检查,但我必须开发一些自定义代码来实现它(并且它有局限性).我想知道是否有人以特别好的方式解决了这个问题.

编辑:我目前的解决方案如下:

ShowMessage( RESTRING( _T("Some string") ) );
ShowMessage( RESTRING( _T("Some string with variable %1"), sNonTranslatedStringVariable ) );
Run Code Online (Sandbox Code Playgroud)

然后我有一个自定义实用程序来解析'RESTRING'块中的字符串并将它们放入.resx文件进行本地化,以及一个单独的C#COM对象,用于从带有回退的本地化资源文件加载它们.如果C#对象不可用(或无法加载),我将回退到代码中的字符串.宏扩展为一个模板类,它调用COM对象并进行格式化等.

无论如何,我认为添加我现在的内容以供参考是有用的.

c++ windows mfc localization

20
推荐指数
1
解决办法
9556
查看次数

简单提升提交; 建议?

寻找一些一般性建议......

我一直在使用boost一段时间,我已经编写了几个小模块和函数(例如:看到这个SO问题),我认为冷适合包含在boost中.我去过项目页面看看提交过程,但似乎是"在里面,或者不要打扰".我可以订阅开发人员邮件列表,但我不确定我是否有资格在那里发帖:我当然不是非常熟悉所有各种升级模块,并且不像模板元编程那么精通人们积极参与.

对于"正常"的人来说,是否有一条途径可以为可以纳入提升的事物发送想法?或者提升有点"只在名义上公开,除非你把它作为全职工作"类型的项目?

c++ boost

5
推荐指数
1
解决办法
193
查看次数

未解析的外部符号boost :: chrono :: system_clock :: now(void)

谷歌一直不友善...

我最近降低了Boost 1.50,并尝试使用它来构建我的项目。这是一个大型项目,使用了一些增强功能(线程,信号,指针类,主体等)。一些细节:
-MSVC 9.0(2008)
-静态链接提升

链接每个生成的exe时出现错误,但使用chrono时却不直接链接。错误是:

libboost_thread-vc90-mt-sgd-1_50.lib(thread.obj) : error LNK2019: unresolved external symbol "public: static class boost::chrono::time_point<class boost::chrono::system_clock,class boost::chrono::duration<__int64,class boost::ratio<1,10000000> > > __cdecl boost::chrono::system_clock::now(void)" (?now@system_clock@chrono@boost@@SA?AV?$time_point@Vsystem_clock@chrono@boost@@V?$duration@_JV?$ratio@$00$0JIJGIA@@boost@@@23@@23@XZ) referenced in function "public: bool __thiscall boost::thread::try_join_until(class boost::chrono::time_point<class boost::chrono::system_clock,class boost::chrono::duration<__int64,class boost::ratio<1,1000000000> > > const &)" (?try_join_until@thread@boost@@QAE_NABV?$time_point@Vsystem_clock@chrono@boost@@V?$duration@_JV?$ratio@$00$0DLJKMKAA@@boost@@@23@@chrono@2@@Z)
Run Code Online (Sandbox Code Playgroud)

我看到了这个问题,但是我没有直接控制链接的顺序(而是使用自动链接功能)。如果我缺少特定的库,可以手动链接它;次优,但可能。但是,我不知道缺少了什么。在我的半文教徒看来,该符号在chrono库中而不在系统库中是外部的。

有什么帮助吗?

c++ boost visual-studio-2008

5
推荐指数
1
解决办法
3859
查看次数

Visual C++中缺少/所需的功能

我找不到另一个已经被问到这个问题的话题,所以我开始了......如果有的话,请随时链接并关闭它.

您认为Visual C++最缺少什么功能?

微软已经为最近几个版本的C#/ VB.NET开发添加了很好的功能,但是C++有点被忽视了.我对其他IDE没有太多经验,但在过去的五年中,人们喜欢C++ IDE开发必须有一些进展.我很好奇人们认为Visual C++中缺少的最缺乏的功能.

笔记:

  • 不,我不为MS工作,我只是使用他们的东西,并希望看到它变得更好
  • 这是特定于本机C++开发的,虽然我认为C++/CLI也应该是公平的游戏
  • 随意添加多个功能作为单独的条目; 通过这种方式,人们可以对他们认为最缺乏的东西进行投票

c++ ide visual-c++

0
推荐指数
3
解决办法
755
查看次数

标签 统计

c++ ×4

boost ×2

ide ×1

localization ×1

mfc ×1

visual-c++ ×1

visual-studio-2008 ×1

windows ×1