C#调用C++ dll CImage类

问题描述

小白一个,想把一个C++写的图像处理的程序通过DLL在C#里调用。有点疑惑的是C++程序里用CImage类进行图像的载入、处理、显示等操作,有哪些方法能够把处理后的图形数据在C#里读取并显示出来呢?(C#直接调用C++程序的显示方法试过了,是不行的)网上找了些方法,比如http://bbs.csdn.net/topics/390389519这里说的句柄,或者是http://blog.csdn.net/devcopper/article/details/12647663使用C#从内存里获取图像数据流的方法?求大神指点下。

解决方案

解决方案二:
在c++里用CImage::GetBits传回指针,然后在c#里用Image.FromHbitmap创建
解决方案三:
引用1楼shingoscar的回复:

在c++里用CImage::GetBits传回指针,然后在c#里用Image.FromHbitmap创建

不好意思,今天才看到,先试试看哈,谢谢啦

时间: 2024-08-31 16:22:20

C#调用C++ dll CImage类的相关文章

如何使用C#调用dll导出类

问题描述 我知道用c++写的导出函数在c#里可以如下方式调用:[DllImport("Raster2d.dll",EntryPoint="getValue",CharSet=CharSet.Ansi)]publicexternstaticintgetValue();但我现在写了一个dll的导出类,很简单的一个类:class__declspec(dllexport)Raster2d{public:intx;inty;public:intgetValue();publi

C# 如何调用C++dll 类的成员函数?(请大家指教一二)

问题描述 C#如何调用C++写的MFCDLL中某一类的成员函数呢?eg...C++MFCDLL中有一个类的公共成员函数:CDllClass::icanseeu()...C#应用程序如何调用此函数....求助....先谢啦!!! 解决方案 解决方案二:实现不了解决方案三:C++自己调用都是问题,何况是其他语言解决方案四:实现不了.解决方案五:那怎么办,,,有没什么办法可以解决的...如果是一个C++的普通函数就可以调用的,(已实现)一个C++的类成员函数要怎么办?难不成把C++代码转换为C#代码?

JAVA调用动态链接库DLL:JNative学习

JAVA调用动态链接库DLL的方法有:JNI(Java Native Interface),JInvoke,JNative(Java to native interface),JNI是JAVA自身提供的方法:JInvoke从何而来不得而知,好像还需要注册付费的,64位的JDK.JIR环境下运行不了,在VMware下安装的WindowsXP下同样有问题:JNative是开源的,但相关资料文档也特别的少,好像已经停止更新了.JNative源码地址:http://jnative.cvs.sourcef

struct-关于C#调用C++dll的问题

问题描述 关于C#调用C++dll的问题 在c#调用dll中遇到了个巨坑,请大侠&大神帮忙c++定义://! 长度为10的字符串typedef char TAPISTR_10[11];typedef char TAPICHAR;typedef char TAPIDTSTAMP[24]; //! int 32typedef int TAPIINT32;//! unsigned 32typedef unsigned int TAPIUINT32;//! int 64typedef long long

Java如何调用C++ DLL库_java

 最近做了一个网页端人脸识别的项目,用c++写了人脸识别的算法,但是在网页端要使用java后台,这其中就涉及到了java调用dll的问题.下面是小编通过查阅相关资料,实现的一个简单例子. 1.第一步,先在Java中新建一个类 如上图,其中注意这句System.loadLibrary("javaCallcpp");,这就是加载dll文件的代码了.然后我们需要dll中实现下面定义的加减乘除方法. 2.编译文件,文件名为Java2cpp.java,首先编译成class文件,如果用的是ecli

DLL的概念、dll导出类

1. DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数.变量或类.这些可以直接拿来使用. 静态链接库与动态链接库的区别: (1)静态链接库与动态链接库都是共享代码的方式.静态链接库把最后的指令都包含在最终生成的EXE文件中了:动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以"动态"地引用和卸载这个与EXE独立的DLL文件. (2) 静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的

C++ DLL导出类 知识大全

在公司使用C++ 做开发,公司的大拿搭了一个C++的跨平台开发框架.在C++开发领域我还是个新手,有很多知识要学,比如Dll库的开发.    参考了很多这方面的资料,对DLL有一个基本全面的了解.有一个问题让我有点困惑,普通的导入导出C++类的方式都是使用_declspec(dllexport) /_declspec(dllimport)来导入导出类,但是在公司的开发中我们没有导入导出,而是定义了一些只有纯虚函数的抽象类,然后定义了一个工厂类,将这个工厂类注册到框架的服务中心中,使用时从服务中心

C#调用c++ dll 封送结构体数组,无法成功

问题描述 C#调用c++ dll 封送结构体数组,无法成功 c++代码: class qf { private: char *id; char *mc; float sd; int LX; }; 函数:int EntryPoint(qf *qfw); c#代码: public class qf { private string id; private string mc; private float sd; private int LX; }; c#调用: qf[] qfw = new qf[2

dll调用-关于C++ 调用C# dll 出现无法转换的数据类型。。

问题描述 关于C++ 调用C# dll 出现无法转换的数据类型.. C# 这个函数是这样定义的:Collection EnumerateUsb(); 现在VC中可以正常调用C#的dll,包括需要的Namespace等, CollectionSystem::string str = ls->EnumerateUsb(UsbDeviceType::AnyMasterEmulator); 现在用在这个方法获取出现如下错误:请问这个应该如何修改??如何做到数据的转换.. 1> CTestDlgDlg.