如何在三个不同的.cpp文件中使用功能

| 我有三个.cpp文件,它们分别名为MeshLoader.cpp,DynamicXMesh.cpp和StaticXMesh.cpp 我在名为FindTexturePath的MeshLoader.cpp文件中有一个函数,我想在DynamicXMesh.cpp和StaticXMesh.cpp文件中调用并使用它。 我在启动XMesh文件中包含了MeshLoader.cpp(#include \“ MeshLoader.cpp \”)文件,当然会收到一条错误消息,指出功能已定义... 我也尝试过一次使用编译指示和ifndef ...:
//This is \"MeshLoader.cpp\"
pragma once

#ifndef MLOAD
#define MLOAD
  char* FindTexturePath( char* TexturePath ,LPSTR FileNameToCombine){
      ...
      ...
      ...
  }
#endif
/////
//This is StaticXMesh.cpp
#include \"MeshLoader.cpp\"
...
...
...
this->StatXMeshTexturePath = FindTexturePath(StatXMeshTexturePath,d3dxMaterials[i].pTextureFilename);
...
...
///// 和对DynamicXMesh.cpp的相同调用 希望我能解释得足够清楚...谢谢您的宝贵时间...     
已邀请:
        您需要创建MeshLoader.h,并在其中放入类似内容
#ifndef INCLUDED_MESH_LOADER_H
#define INCLUDED_MESH_LOADER_H

char* FindTexturePath( char* TexturePath ,LPSTR FileNameToCombine);

#endif
并将其包含在其他cpp文件中。每个cpp文件仅需要FindTexturePath的声明即可进行编译。因此,每当需要将cpp中的功能公开给其他cpp文件时,请创建一个包含功能声明的.h文件。     
        首选方法是将函数声明放入.h文件中,并使链接程序将所有.cpp文件组合为一个可执行文件。 如果您坚持以非标准的方式进行操作,则可以通过使函数
inline
或ѭ4make进行工作。     
        将函数原型放在头文件(MeshLoader.h)中,并在需要使用该函数的所有位置包含该文件。     
        正如其他用户所述,您要将声明放置在头文件(
.h
.hpp
)中。 有时您可能希望在头文件中也有一个定义。此时,您将创建一个静态函数定义:
static char* FindTexturePath(...) { .. }
    

要回复问题请先登录注册