为什么用“__Internal”的DllImport不起作用?(Why DllImport does

2019-07-23 14:07发布

我有C ++共享库,其中出口法int MyFunc()用于Linux和Windows。

从C#我做致电MyFunc具有以下签名。

[DllImport(@"__Internal", CharSet = CharSet.Ansi, EntryPoint = "MyFunc")]
static extern unsafe int MyFunc();
// Later I'm using :
MyFunc();

此代码工作正常的Windows但里面linux此抛出一个异常EntryPointNotFound

我编我的C ++库-rdynamic选项,我可以看到MYFUNC出口与纳米d标志,但这也并不能帮助我。

没有任何改变,如果我只是改变DllImport(@"__Internal"DllImport(@"mys.so" ,然后将工作在Linux上很好,但后来我不得不使用DllImport(@"mys.dll"在窗户,这打破代码交叉兼容特征。
所以我想避免这种情况。

我看不出有什么错误,为什么__Internal不工作在Linux上。
请注意,我使用的是单声道。

任何想法,为什么这不是在Linux上工作?

Answer 1:

您可以在Windows和Linux使用此:

[DllImport ("mys")]

适当延长将根据平台的加入(这一点也适用于.NET和单声道)。



文章来源: Why DllImport doesnt work with “__Internal”?
标签: c# c++ .net mono