注1:为了确保silverilght5在浏览器或桌面上成功调用win32 DLL,必须在项目属性中勾选相应的权限:
勾选Enable running application out of the browser及其Require elevated trust when running in-browser
勾选Require elevated trust when running in-browser
注2:win32 dll文件编译后放在\windows\system32或\windows\system目录下,win7 x64的系统放在后者。
注3:winform/wpf中调用类似
.cpp
.xaml
.cs
C#传委托给C的函数指针调用问题
C代码如下:
多次验证发现在C#中传委托给C中的函数指针,如果委托不带参数则都能成功运行,但是委托一带参数不管是int参数还是string参数或者其他参数,都会报” 尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的错误,找了一天才找到解决方法,既在C#的委托声明上加[UnmanagedFunctionPointer(CallingConvention.Cdecl)],正确调用如下:
Original: https://www.cnblogs.com/chuncn/archive/2012/01/06/2314020.html
Author: chuncn
Title: Silverlight5通过P/Invoke调用自定义C/C++ DLL(Lua)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536195/
转载文章受原作者版权保护。转载请注明原作者出处!