cpp-请问非托管C++中是否可以调用C#的函数

问题描述

请问非托管C++中是否可以调用C#的函数

请问一个项目里面可不可以创建CS文件和CPP文件,并在CPP文件中调用CS文件中的类方法。

解决方案

当然可以,将你的C#程序包装成com对象,用regasm注册。
在你的C++中CoCreateInstance像调用COM对象那样就可以用

http://www.360doc.com/content/12/1218/08/9200790_254706077.shtml
http://www.codeproject.com/Articles/12673/Calling-Managed-NET-C-COM-Objects-from-Unmanaged-C

解决方案二:

C#调用非托管C++DLL中的函数
C#调用非托管DLL函数
C#如何直接调用非托管代码

解决方案三:

直接工程中不能混合cs,cpp文件。需要封装cs到一个com dll等模块。然后cpp调用模块接口

解决方案四:

这个真不可以有,否则这叫什么语言?C++#?
既然有源码就改写一下,不想改写就创建一个对应的项目编译一下,然后拿来引用;

解决方案五:

打包成类库,然后cpp在引用dll就可以调用了

解决方案六:

不可以,但是可以将c#写成组建

时间: 2024-09-15 02:46:33

cpp-请问非托管C++中是否可以调用C#的函数的相关文章

如何在C#中监听COM组件(非托管)中对象启动事件?

问题描述 如何在C#中监听COM组件(非托管)中对象启动事件? 诸位前辈,晚上好: 我是一名硬件工程师,最近使用原理图绘图工具时发现有些功能不好用,就准备自己开发插件增强一下,其中遇到了这样一个问题: 我在 C# 项目中加入 COM 组件的引用,原理图程序的 COM 对象是 ViewDraw,在其启动时,会创建一个 ViewDraw.Application 的对象,这个对象中有一些子成员和方法,以及一些事件.我现在通过以下方法已经可以做到此原理图程序启动后获取此活动对象: ViewDraw.Ap

c++-请问如何将python 中包含了numpy模块的函数导入C++中

问题描述 请问如何将python 中包含了numpy模块的函数导入C++中 现在我要导入一个函数,函数内部包含了numpy模块 和pandas 模块,请问如何将这个函数导入C++中 解决方案 http://www.zhihu.com/question/29521273

关于JS中setTimeout()无法调用带参函数问题的解决方法_javascript技巧

本文实例分析了JS中setTimeout()无法调用带参函数问题的解决方法.分享给大家供大家参考,具体如下: 解决方法:重写setTimeout() 方法,需要用到闭包函数.如下: var _st = window.setTimeout; window.setTimeout = function(fRef, mDelay){ if (typeof fRef == 'function') { var argu = Array.prototype.slice.call(arguments, 2);

托管C++中GDI+和GDI混合编程技术

1.引言 早期的Windows程序中,可以使用GDI(Graphics Device Interface,图形设备接口)在一个窗体中绘制图形.文本和图像,但它的功能比较有限,尤其是图像处理方面.GDI+是GDI的一个新版本,它不仅在GDI基础上添加许多新特性,而且对原有的GDI功能进行优化,并在为开发人员提供的二维矢量图形.文本.图像处理.区域.路径以及图形数据矩阵等方面构造了一系列相关的类.其中,图形类Graphics是GDI+接口中的一个核心类,许多绘图操作都可用它来完成. 与GDI相比,G

.net 服务多线程 调用非托管C++DLL 如何防止 服务崩溃?

问题描述 .net 服务多线程 调用非托管C++DLL 如何防止 服务崩溃? 有一个.net服务,服务中开了多线程.其中有一线程会去调用非托管C++DLL,并阻塞等待其返回值.其他线程同步做文件处理.数据状态更新等操作.现在调用非托管C++DLL的线程会因为非托管代码的问题,崩溃.这样整个服务也就崩溃了!需要人工去服务器上重启该服务!请问:如何防止整个服务崩溃?是否可以捕获非托管C++中的错误.因为已经try catch了,但什么都捕获不到,直接服务崩溃! 解决方案 这个应该要想办法解决C++

托管C++中函数调用的双重转换

在VC.Net中使用默认设置/clr编译时,一个托管函数会产生两个入口点,一个是托管的,供托管代码调用,另外一个是非托管的,供非托管代码调用.但是函数地址,特别是虚函数指针只能有一个值,所以需要有一个默认的入口. 非托管入口点可能是所有调用的默认入口(在 Visual Studio .NET2003 中,编译器总是会选择非托管入口,但是在Visual Studio 2005中,如果参数或者返回值中包含托管类型,那么编译器会选择托管入口),而另外一个只是使用托管C++中的互操作功能对默认入口的调用

鼠标hook函数中如何调用COM接口函数?

问题描述 请问大家鼠标HOOK函数中不能直接调用COM接口函数??下面是我的一个hook例子:///<summary>///鼠标钩子///</summary>privateMouseHookmouseHook;//设置鼠标钩子mouseHook=newMouseHook();mouseHook.MouseClick+=newMouseEventHandler(mouseHook_MouseClick);mouseHook.StartHook(HookType.WH_MOUSE_LL

C++/CLI中有效使用非托管并列缓存

Visual Studio安装程序会把Visual Studio的共享库放在一个称为"并列缓存(side-by-side cache)"的地方,那怎样才能有效地利用它呢? 在文章开头,先看一个示例.在命令行中,创建一个C++源文件,输入例1中的代码.(虽然此处使用的是C++/CLI语法,但不管你是用C++/CLI.托管C++.或本地C++,都不影响要讲解的主题.) 例1:lib.cpp using namespace System; public ref class Test { pu

C#调用非托管动态库中的函数

C#如何调用一个非托管动态库中的函数呢,比如用VC6写的动态库,总之C#调用动态库的过程是比Java调用DLL动态库方便快捷多了,下面举例说明这个过程. 1.创建一个非托管动态库 代码如下: //这一句是声明动态库输出一个可供外不调用的函数原型. extern "C" __declspec(dllexport) int add( int , int ); int add( int a, int b) { //实现这个函数returna+b; } 注意上面代码,一定要加上 extern&