我目前正在创建我的第一个 swig 项目。我有一些 c++ 代码,我在我的 c# UI 中使用 1 个类函数。我创建了一个看起来像这样的 .i 文件:
%module mymodule
%{
#include "Simulation.h"
%}
/*****************************************************************************
* SOME DEFINITIONS *
*****************************************************************************/
#define EXAMPLE_DEFINITION 'a'
#define EXAMPLE_DEFINITION_2 'x'
class Simulation
{
public:
// BUNCH OF FUNCTIONS
static unsigned int getTick();
static void tick();
// BUNCH MORE FUNCTIONS
private:
// A BUNCH MORE THINGS
};
我使用以下方法添加了 cs 文件:
swig -c++ -csharp -outdir UI -o cpp/simulation_wrap.cpp Simulation.i
它会生成几个文件,我将它们添加到我的 c# 项目中。在我的代码中,如果我添加以下行:
Simulation.getTick();
或者
Simulation.tick();
我没有编译错误,但出现以下运行时错误:
The type initializer for 'mymodulePINVOKE' threw an exception.
我错过了任何步骤吗?我曾尝试搜索此内容,但没有成功。
(也许重要的是要注意我已经尝试将 c++ 编译为 dll 和 lib)。
提前致谢