Application::ProductName返回void String,如何非运行时填充该值?
解决Application::ProductName返回空字符串的问题
嘿,这个问题其实很好解决——Application::ProductName(C++/CLI里的写法)的值并不是凭空生成的,它是直接读取你程序集里的AssemblyProductAttribute元数据。要在非运行时填充这个值,只需要给项目配置好对应的程序集属性就行,具体步骤如下:
- 首先找到项目里的
AssemblyInfo.cpp文件(如果没有的话,右键项目 → 添加 → 新建项 → 选择「Assembly Information File」创建一个) - 打开这个文件,添加或者修改
AssemblyProductAttribute的定义:[assembly: AssemblyProductAttribute(L"你的应用正式名称")]; - 保存文件后重新编译项目,之后再调用
Application::ProductName就能正确返回你设置的名称了。
额外小技巧
如果是WPF类型的C++/CLI项目,你还可以通过可视化界面快速设置:右键项目 → 属性 → 应用程序标签页 → 点击「程序集信息」按钮,在弹出的窗口里填写「产品名称」字段,确认后VS会自动帮你更新AssemblyInfo.cpp里的属性,不用手动写代码~
本质上,这些属性是在编译阶段就嵌入到程序集元数据里的,Application::ProductName只是读取这个预存的值,完全不需要在运行时动态赋值,刚好符合你“非运行时填充”的需求。
内容的提问来源于stack exchange,提问作者areify
相关产品推荐
相关产品推荐

