我受到我正在使用的sdk的限制,它希望在同一个cpp文件中声明和定义插件类。我想将main函数放在一个单独的c ++文件中,以达到审美目的。不仅仅是美学,滚动这么多也变得非常繁琐。
由于类没有在任何头文件中声明,我不能只使用新的源文件并包含头文件,所以我想知道是否有任何类型的预处理器术语用于替换另一行的内容cpp文件好像它一直是原始cpp文件的一部分。
继承我尝试的内容:
原始cpp文件就像这样(片段):
...
void Mod1::NotifyPostCollapse(INode* /*node*/,Object* /*obj*/, IDerivedObject* /*derObj*/, int /*index*/) {}
void Mod1::ModifyObject(TimeValue t, ModContext& mc, ObjectState* os, INode* node)
{
lots of code here
}
void Mod1::BeginEditParams( IObjParam* ip, ULONG flags, Animatable* prev )
{
...
然后我尝试这样做:
...
void Mod1::NotifyPostCollapse(INode* /*node*/,Object* /*obj*/, IDerivedObject* /*derObj*/, int /*index*/) {}
#include "ModifyObject.cpp"
void Mod1::BeginEditParams( IObjParam* ip, ULONG flags, Animatable* prev )
{
...
我还创建了modifyobject源文件并在那里粘贴了函数定义但没有骰子,我只是得到了一堆错误。
我没想到它确实有效,但它足以说明我想做什么。我有什么选择?
编辑:我得到的错误是您对代码的期望,而这些代码不了解项目的其余部分,如
C2065: 'TimeValue' : undeclared identifier
C2146: syntax error : missing ')' before identifier 't'
C2182: 'ModifyObject' : illegal use of type 'void'
C2059: syntax error : ')'
我不知道如何使文件不可编辑,我尝试将文件的“content”标志切换为true和/或将文件类型切换为纯文本,但要么没有效果