我编写了完整的本机C ++代码dll,我想通过P / Invoke通过C#代码调用他的方法。 我是否需要更改本机dll属性中的内容?
答案 0 :(得分:3)
P / Invoking需要stdcall约定。因此,查看所有函数声明是否都在__stdcall之前。否则堆栈会被破坏。
答案 1 :(得分:1)
不,您不需要更改DLL本身的属性,但需要确保调用约定与C#中使用的约束匹配。然后,您需要在C#中使用匹配参数声明可调用函数,并返回C ++中的那些函数。
现在您可以使用C#调用您的函数。
除了C ++函数的调用约定之外,它应该相当容易。