gpt4 book ai didi

c# - SWIG:如何将指定的 C# 代码块添加到所有生成的 C# 方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:36 24 4
gpt4 key购买 nike

我正在使用 SWIG 为我的 C API 生成 C# 绑定(bind)。我想在理想情况下向所有生成的 C# 方法添加一个固定代码块,而无需通过特定的类型映射。

这可能吗?

更新:

一个例子是这样的:

class MyClass {

.....

public void MyMethod()
{
// A block of code that will appear in all my methods.

// my working code 1.

}



public void MyMethod_2()
{
// A block of code that will appear in all my methods.

// my working code 2.

}

.....

}

也就是说我想生成与类型映射无关的代码,或者异常,这只是几行代码(例如,上面的“将出现在我所有方法中的代码块。”)插入到所有生成的方法中。

我知道 SWIG 有特殊的命令,例如 csbody 来插入接口(interface)级代码,但我找不到任何我想要的东西。

最佳答案

我认为最接近这个的是滥用 %exception。插入每个函数代码,除了它在 C++ 端而不是 C# 端。但是,您可以将其等价,因为您始终可以通过 C++ native 调用在 C# 中执行任何您想执行的操作。您甚至可以安排 C++ 调用一些静态函数来执行您希望固定 block 执行的任何操作。

例子:

%module test

%exception {
// Some magical code goes here
$action
}

class MyClass {
public:
void MyMethod();
void MyMethod2();
};

在每次函数调用之前使用额外的 C++ 代码生成一个 rapper。

关于c# - SWIG:如何将指定的 C# 代码块添加到所有生成的 C# 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15342638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com