我有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上工作?