【问题标题】:Custom message not working for C++ Project template with Wizard自定义消息不适用于带有向导的 C++ 项目模板
【发布时间】:2014-07-18 12:08:22
【问题描述】:

我已经按照http://msdn.microsoft.com/en-us/library/ms185301.aspx 此处的教程制作了一个模板项目,该项目让我可以使用向导替换代码中的参数。

这适用于我的所有 C# 项目,例如,如果我的模板中有以下内容:

using System.Runtime.Serialization;
using $customvariable$Definitions;

namespace $customvariable$Objects
{
    /// <summary>
    /// $customvariable$ Camera
    /// </summary>
    public class $customvariable$Camera
    {
        #region Constructor
        /// <summary>
        /// Instantiates a new instance of the $customvariable$Camera class
        /// </summary>
        public $customvariable$Camera() :
            base()
        {

        }
        #endregion
    }

我可以将我的自定义变量重命名为我想要的任何内容,它会在生成的项目中生成。

但是 如果我在可视化 C++ 项目中执行完全相同的操作,自定义变量不会被替换。

我怎样才能让它也适用于 C++ 代码文件

【问题讨论】:

    标签: visual-c++ visual-studio-2012 project-template


    【解决方案1】:

    C++ 使用不同的方法来替换模板值。不幸的是,语法与 C# 不同。一种可能的解决方案(尽管可能不是最好的)是拥有两个单独的模板文件并使用“语言”标志来确定使用哪一个。看看herehere 的区别。

    这是它在 C++ 中的外观示例...

    static AFX_EXTENSION_MODULE [!output PROJ_SOURCE]DLL = { NULL, NULL };
    
    #ifdef _MANAGED
    #pragma managed(push, off)
    #endif
    
    extern "C" int APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
    {
        // Remove this if you use lpReserved
        UNREFERENCED_PARAMETER(lpReserved);
    
        if (dwReason == DLL_PROCESS_ATTACH)
        {
            TRACE0("[!output PROJ_SOURCE].DLL Initializing!\n");
    
            // Extension DLL one-time initialization
            if (!AfxInitExtensionModule([!output PROJ_SOURCE]DLL, hInstance))
                return 0;
    
            // Saves the DLL instance handle for later use with ChangeResCl. 
            resHandle = hInstance;
    

    在上面的代码中,dll 的名称在两个不同的位置使用“[!output PROJ_SOURCE]”替换。

    【讨论】:

    • 谢谢,当我使用上述方法时,我可以更改 c++ 文件名,但 C++ 文件中的参数没有。我查看了这两个链接,但看不到任何 C++ 文件替换参数的示例。
    猜你喜欢
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    相关资源
    最近更新 更多