本文介绍了DllImportAttribute CallingConvention的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我在Class包装器中调用了一个非托管DLL,如下所示。 命名空间blah { [DllImport( " DLLName.DLL",EntryPoint =" BlahEntryPoint", CallingConvention = CallingConvention.ThisCall] public static extern void blahFn(out long blah,out long blah2) ; 类密封ClassBlah { 私人ClassBlah() { } } } 为什么我要通过ThisCall的CallingConvention来调用它,它只是 正常的C函数在DLL中。为什么StdCall不工作? 其他调用约定会发生的是out参数是 没有设置,但是使用ThisCall,它们设置正常,或者看起来是。我发现它很奇怪。 谢谢 解决方案 奇数。 奇数。 I am calling an unmanaged DLL like follows in a Class wrapper. namespace blah{[DllImport("DLLName.DLL", EntryPoint="BlahEntryPoint",CallingConvention=CallingConvention.ThisCall]public static extern void blahFn(out long blah, out long blah2); class sealed ClassBlah{private ClassBlah(){} }} Why have I to call this with the CallingConvention of ThisCall, its justnormal "C" functions in a DLL. Why wont StdCall work? What happens with other calling conventions is that the out parameters areNOT set, yet with ThisCall, they are set ok, or appear to be. I find it odd. Thanks 解决方案 odd. odd. 这篇关于DllImportAttribute CallingConvention的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 11-02 20:57