4

所以我正在使用 Visual Studio 2005,对于我当前的项目,我正在构建一个 C# 加载项来处理 AspectC++ 方面的编织。收集方面和源文件并将它们提供给方面编译器非常简单,但这会生成新的(修改过的)源文件。我正在尝试模拟标准的 AspectC++ 插件:http ://www.pure-systems.com/AspectC_Add-In.22+M54a708de802.0.html,所以我想保持项目的源文件不变,因为我将编织文件提供给 C++ 编译器。假设我什至可以做到这一点(不确定如何),我将如何让调试器正确指向原始源文件?我知道我必须取消选中 VS 选项,这样源就不必与编译版本匹配,但我不知道如何在不直接修改源文件的情况下将两者关联起来。有什么建议吗?

4

1 回答 1

0

听起来您想在预处理器之前或之后修改源代码。在这种情况下,您应该使用 #line 指令来告诉编译器它正在处理的文件和行。这就是预处理器的工作方式,它将所有头文件包含在一个大文件中,该文件包含#line 指令,它使编译器能够报告正确行的错误并在调试器的符号中指定正确的行。

您应该尝试仅在源文件上运行预处理器。这将向您展示#line 指令的工作原理。cl.exe 命令行选项 /P 将在这里为您提供帮助。请记住,您将需要编译文件所需的所有其他预处理器选项,例如 /D 和 /I 以使其工作。

http://msdn.microsoft.com/en-us/library/b5w2czay(VS.71).aspx

于 2009-05-18T11:42:52.527 回答