【问题标题】:VC++ Project, want to compile within another IDE but something is missingVC++ 项目,想在另一个 IDE 中编译,但缺少一些东西
【发布时间】:2011-09-30 04:20:49
【问题描述】:

我对 C++ 还很陌生。
我想为名为@9​​87654321@ 的应用程序编写插件。
C4D 的制造商 Maxon 为此提供了一个 API。头文件位于一个特殊的文件夹中。

“cinema4dskd”是一个包含示例插件的 Visual Studio 项目。在这个项目中,还有另一个名为 _api 的子项目。

弹出窗口是“项目依赖”对话框。

_api 子项目似乎是我的 localdrive 上存在的文件的链接,但它不在 Cinema4dsdk.vcproj 中。
_api 项目中的所有文件都位于 Cinema 4D 安装路径中的一个文件夹中,也称为 _api
它充满了头文件和 .cpp 文件。
这基本上是我为 Cinema 4D 编译插件所需要的,包括我的源代码中的“c4d.h”。
但这就是问题的开始。

我正在尝试在 Code::Blocks 中编译一个插件,我已经添加了“c4d.h”的所有路径等。但是每个编译器(gcc,甚至是 msvc!)都会告诉我成千上万的警告:

C:\Programs\MAXON\Cinema 4D R12\resource\_api\ge_prepass.h |2668|警告:多字符字符常量|

最后是没有声明C4DGLuint 的错误。为什么它可以在 VC++ 中工作,但不能在任何其他编译器中工作?我一定错过了什么,但我真的不知道是什么。

我不认为我被允许分享这个项目,因为 _api 归 Maxon GmbH 所有,但如果你真的需要它,我请求你下载 Cinema 4D Demo 版本,其中cinema4dskd 项目包括在内。

如果您需要任何进一步的信息,请告诉我,我希望您知道可能缺少什么。为什么VC++可以正确编译插件,但我不能使用命令行或任何其他IDE?

非常感谢。
尼克拉斯

更新:

多字符常量错误示例:

C:\Users\niklas\Documents\CodeBlocks\Cinema4D\_api\src\gui.h|690|警告:多字符字符常量|
C:\Users\niklas\Documents\CodeBlocks\Cinema4D\_api\src\gui.h|693|警告:多字符字符常量|

690: BFM_SETVIEWPORTORIGIN  = 'cORG',
691:    BFM_SETVIEWPORTORIGIN_X=1,
692:    BFM_SETVIEWPORTORIGIN_Y=2,
693: BFM_SETVIEWPORTSIZE    = 'cSIZ',

【问题讨论】:

  • C4DGLuint 在哪里声明?你包括那个标题吗?至于警告,您可以粘贴确切的行吗?
  • 啊,很好,我以为所有标题都包含在c4d.h 中,但c4d_gl.h 没有。如果我将它添加到operatingssystem.h(发生错误的地方)它可以工作,但会出现另一个(另外,我认为我不应该修改这些文件,它们也可以在 VC++ 中工作)。 C4DOS is not declared in this scope.。我看到了,C4DOS在operatingsystem.h中被externed:extern OperatingSystem C4DOS;,但是在发生错误的文件中,operatingsystem.h被包含了。
  • 顺便说一句,我现在已将_api 复制到 Code::Blocks 并尝试构建它(但是,它在 VC++ 中设置为 .lib,但我看不到它的链接位置进入cinema4dskd?)所以当我可能需要修改文件时我可以测试它^^这很难解释,特别是因为我对编译的东西很陌生。
  • “至于警告”,我会做的,看更新。
  • 对于上面,OperatingSystem 是上面声明的结构体,它有指向 C4D api 其他部分的指针。

标签: c++ visual-studio-2008 compilation


【解决方案1】:
'cORG'

是所谓的多字符文字。它的值不适合char 变量,你需要一个'int'来保存它,根据这篇文章

C++ multicharacter literal

如何解释这个东西是编译器特定的。似乎您测试过的其他编译器不支持这些文字。

【讨论】:

  • 将 Msvc 与 CodeBlocks 一起使用会给出相同的警告,但在 Visual Studio 中不会。但也许他们在那里被压制了?
猜你喜欢
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多