0

我为嵌入式 SQL 使用 Oracle 预编译器。我正在将一些代码从 VC++ 6.0 移动到 VStudio 2010。

我将数据库调用放在名为“dbcalls.pc”的单个源代码模块中——该模块被传递给生成“dbcalls.cpp”的预编译器,然后像所有其他.cpp文件一样传递给编译器和链接器。

在 VC6 下,我手动对我的自定义构建 .pc 文件进行编译 - 即;rt 单击 dbcalls.pc 文件并选择编译。然后由于我使用的 Oracle 预编译器的特定版本中存在错误,我必须打开 .cpp 并在预编译器生成的 .cpp 顶部插入 #include "stdafx.h" - 我有一个宏可以这个。然后我可以对整个项目执行构建,VC6 IDE 不会尝试重新运行自定义构建。

在 VStudio 2010 中,我用一个重要的异常/问题复制了这一点 - 如果我将 dbcalls.pc 文件配置为从属性下的构建中排除(其中它被指定为自定义构建类型),那么我无法点击文件并选择编译。

如果我将属性设置为包含在构建中,我可以点击并手动将 .pc 构建到 .cpp 中,但是在我为项目运行构建时更改 .cpp 后,它会重新运行自定义构建并删除我的更改. 我被迫在属性对话框中来回切换并更改“从构建中排除”设置。这是在 VC6 中不会发生的皇家 PITA。

任何人都可以建议解决方法吗?显然,如果预编译器没有这个错误,那么一切都会好的,但目前还没有考虑转移到另一个版本的 pc。

想法?

4

1 回答 1

0

好的 - 我不知道为什么 - 也许我把鸡甩到头上的次数恰到好处.. - 但它现在工作正常。

我解决了另一个问题,我在自定义构建对话框中使用预编译器的宏参数,一旦我这样做了,它就开始正确地进行条件构建(或者至少正如我预期的那样)。

我耸了耸肩,说“结案”。

于 2011-06-16T13:04:29.910 回答