C# 如何:编译生成的C++;源文件? p>我写了一个VS2008 C++插件,以自动实现C++项目中的ApCTCT+++编织。我正在生成C++源文件(现在用方面编织),但我无法理解如何编译它们作为预构建步骤的一部分。在IDTExtensibility2、EnvDTE90或VslangProj90命名空间中是否有一种方便的方法来指定新的源?我尝试过使用VCProject和VCProjectEngine接口,并通过“excludedfromfuild=false”标志以编程方式标记要包含的文件。不走运

C# 如何:编译生成的C++;源文件? p>我写了一个VS2008 C++插件,以自动实现C++项目中的ApCTCT+++编织。我正在生成C++源文件(现在用方面编织),但我无法理解如何编译它们作为预构建步骤的一部分。在IDTExtensibility2、EnvDTE90或VslangProj90命名空间中是否有一种方便的方法来指定新的源?我尝试过使用VCProject和VCProjectEngine接口,并通过“excludedfromfuild=false”标志以编程方式标记要包含的文件。不走运,c#,visual-studio-2008,code-generation,add-in,aop,C#,Visual Studio 2008,Code Generation,Add In,Aop,我注意到,商业的AspectC++加载项绕过了cl.exe,在它和ac++.exe方面编译器周围放置了一个包装器。因此,他们必须调用自己的cl.exe,然后在为真正的编译器准备生成的源文件之前调用ac++.exe。对我来说,这似乎是一种恶作剧,难道没有更好的办法吗?在这一点上我真的很困惑,任何帮助都将不胜感激。为什么不将生成的文件包含到您随后构建的项目中?为什么不将生成的文件包含到您随后构建的项目中?当我手动执行时,它会工作,但在预构建事件中它不会工作。据我所知,“ExcludedFromBui

我注意到,商业的AspectC++加载项绕过了cl.exe,在它和ac++.exe方面编译器周围放置了一个包装器。因此,他们必须调用自己的cl.exe,然后在为真正的编译器准备生成的源文件之前调用ac++.exe。对我来说,这似乎是一种恶作剧,难道没有更好的办法吗?在这一点上我真的很困惑,任何帮助都将不胜感激。

为什么不将生成的文件包含到您随后构建的项目中?

为什么不将生成的文件包含到您随后构建的项目中?

当我手动执行时,它会工作,但在预构建事件中它不会工作。据我所知,“ExcludedFromBuild=false”方法是唯一确保该文件现在包含在项目中的方法。VCProject接口的.AddFile()函数表示生成的文件确实是项目的一部分。。。但由于某些原因,它们没有被编译。我认为要编译的文件是在预构建步骤之前确定的…实际上,通过一些测试,我让它们包含并编译了。。。这仍然是一个黑客行为,但无论如何……为了清楚起见,我已经了解到VCProject和Project接口并不一定相等。Project(或ProjectItem)接口允许您从生成中排除项,但通常VCProject不允许。这可能是一个错误。另外,当您有多个平台时,ActiveConfiguration对您没有帮助(只是配置名称,而不是平台),因此您需要以其他方式指定它,否则您将从错误的配置中排除项目。当我手动执行此操作时,它会起作用,但在预构建事件中它不会起作用。据我所知,“ExcludedFromBuild=false”方法是唯一确保该文件现在包含在项目中的方法。VCProject接口的.AddFile()函数表示生成的文件确实是项目的一部分。。。但由于某些原因,它们没有被编译。我认为要编译的文件是在预构建步骤之前确定的…实际上,通过一些测试,我让它们包含并编译了。。。这仍然是一个黑客行为,但无论如何……为了清楚起见,我已经了解到VCProject和Project接口并不一定相等。Project(或ProjectItem)接口允许您从生成中排除项,但通常VCProject不允许。这可能是一个错误。另外,当您有多个平台时,ActiveConfiguration对您没有帮助(只是配置名称,而不是平台),因此您需要以其他方式指定它,否则您将从错误的配置中排除项目。Lake,此时您可能已完成此项目。如果是免费软件或开源软件,你会给我这个插件吗。我需要在VisualStudio中使用AspectC++来跟踪纯嵌入式C项目。您的外接程序可能会对我有很大帮助。谢谢。莱克,这个时候你可能已经完成这个项目了。如果是免费软件或开源软件,你会给我这个插件吗。我需要在VisualStudio中使用AspectC++来跟踪纯嵌入式C项目。您的外接程序可能会对我有很大帮助。谢谢