Silverlight5通过P/Invoke调用自定义C/C++ DLL(Lua)

注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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • C++ 中 malloc/free与 new/delete区别

    new/delete 通常来说是操作符,就是”+”,”-“一样,malloc/free 是 C++/C 语言的标准库函数 —— 本质…

    C++ 2023年5月29日
    064
  • C++ 求时差

    C++ 求时差的三种方法 【1】标准C库方式 示例代码 【2】C++库方式 C++11之后才引入 示例代码: 【3】windows API方式 示例代码: 为什么第14行,我们把G…

    C++ 2023年5月29日
    071
  • 对类的理解(c++)

    介绍目录: 1.类成员 1.1 成员函数 1.2 构造函数 1.2.1 对构造函数的理解 1.2.2成员初始化列表 1.2.3必须使用成员初始化列表的几种情况 1.2.4对于拷贝构…

    C++ 2023年5月29日
    068
  • C++中的三种继承关系

    先看类中声明成员时的三种访问权限 public : 可以被任意实体访问 protected : 只允许子类及本类的成员函数访问 private : 只允许本类的成员函数访问 在类继…

    C++ 2023年5月29日
    067
  • 谷歌开源替代 C++ 的编程语言:Carbon

    谷歌工程师 Chandler Carruth 近日在多伦多举办的 CppNorth 大会上宣布,正式开源谷歌内部打造的编程语言:Carbon,并称 Carbon 是 C++ 的继任…

    C++ 2023年5月29日
    074
  • 2022年第十三届蓝桥杯C++B组国赛思路以及部分代码

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    C++ 2023年5月29日
    046
  • C++调用C#的动态库dll

    以往我们经常是需要使用C#来调用C++的dll,这通过PInvoke就能实现。现在在实际的项目过程中,有时会遇到在C++的项目中调用某个C#的dll来完成特定的某个功能,我们都知道…

    C++ 2023年5月29日
    086
  • A Complete Guide to Programming in C++ 笔记

    1.c++程序编译过程。包括两个阶段,compiler和linker。第一个阶段compiler是把c++文件编译成obj文件。第二个阶段是linker把多个obj文件和lib文件…

    C++ 2023年5月29日
    045
  • Windows 8 添加隐私策略(C++版)

    well.新年上班第一天.不幸收到MS官方针对我们Snack Cards应用程序被打回消息.看看Report 内容如下: The app has declared access t…

    C++ 2023年5月29日
    060
  • EclipseC++学习笔记-8 兼容vim

    1、搜索vim2、点击install 本博客是个人工作中记录,遇到问题可以互相探讨,没有遇到的问题可能没有时间去特意研究,勿扰。另外建了几个QQ技术群:2、全栈技术群:616945…

    C++ 2023年5月29日
    047
  • C++解决share_ptr造成的循环引用

    参考链接:https://blog.csdn.net/yc2zgh1314/article/details/51264963 https://www.cnblogs.com/dua…

    C++ 2023年5月29日
    046
  • C++ 内联函数解析(inline)

    inline是C++语言中的一个关键字,可以用于程序中定义内联函数,inline的引进使内联函数的定义更加简单。说到内联函数,这里给出比较常见的定义,内联函数是C++中的一种特殊函…

    C++ 2023年5月29日
    044
  • Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat

    在windows下使用pip安装包的时候提示报错:Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.ba…

    C++ 2023年5月29日
    081
  • C++源码—lock_guard

    在 C++11 中,我们可以使用 mutex 来实现线程的同步,mutex 包括上锁和解锁两个步骤。 lock_guard 的功能也是实现线程同步,可以进一步偷懒以及避免在锁定期间…

    C++ 2023年5月29日
    035
  • std::get<C++11多线程库~线程间共享数据>(10):使用互斥量保护共享数据(5)

    1 /* 2 * 话题1:使用互斥量保护共享数据 3 * 4 * 接下来学习第五个小话题:避免死锁的进阶指导 5 * 6 * 这一小节的内容,完全引用,只在最后补充上我对这部分的理…

    C++ 2023年5月29日
    081
  • C++ #ifndef、#define、#endif作用

    在C++项目中,#ifndef、#define、#endif非常常见,接下来就来简单说一下它们的作用。 作用:防止头文件被重复引用,防止被重复编译。 简介: ifndef 它是if…

    C++ 2023年5月29日
    071
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球