3
所以有一個simple code in C++。由於採用了具有C++庫:爲什麼SWIG C#重載失敗?
class A{
public:
virtual void Call();
virtual void CallCall();
virtual ~A();
};
而痛飲文件:
%{
#include "A.h"
%}
%include "A.h"
%module(directors="1") TestSWIG;
%feature("director") A;
叫痛飲發生器,包括生成的C++和C#文件到相關項目和重建所有項目之後。
swig.exe -C++ -csharp - 命名TestSWIG -outdir ./Sharp/TestSWIG -o ./TestSWIG.cxx TestSWIG.i
我們希望有一個簡單的C#.NET代碼的工作:
using System;
using TestSWIG;
namespace ASharp {
class Cassa : A{
public override void Call() {
Console.WriteLine("Hello from C#");
}
}
class Program {
private static void Main(string[] args) {
var c = new Cassa();
c.CallCall();
Console.ReadLine();
}
}
}
然而,我們看到的C++實現的是,被調用
void A::Call() {
std::cout << "Hello from C++ World!" << std::endl;
}
現在闕之一問題是:我做錯了什麼,繼承和虛函數不起作用?
'A'沒有任何命名空間中的C++世界 – DuckQueen