已经三天了,一点进展也没有,我以前是.NET的,现在换到Win32平台什么都不懂,遇上了个比较棘手的问题。我想用C#去掉一个C++的方法,传给它的是一段码流,需要转成RGB格式的,但是网上这个方法(http://dev.firnow.com/course/3_program/c++/cppsl/20071119/87075.html)没有返回值,怎么转啊我就奇怪,会的大哥帮帮忙。
还有就是在C++里面怎么写供C#调用的DLL,谢谢大家了!
本人QQ332547004 有会的帮帮忙,你有什么需要我也会帮你的。
C#调用C++写的DLL,这里有个简单的例子。
http://www.cnblogs.com/virusswb/archive/2008/05/30/1210520.html
已经有人问过了,我写了个C#版的,你参考下:
http://space.cnblogs.com/question/16711/
C++ dll .h 文件中这样申明:
extern "C" __declspec(dllexport) void __stdcall ConvertYUVToRGB(unsigned char *src0,unsigned char *src1,unsigned char *src2,unsigned char *dst_ori,int width, int height);
.cpp 文件中这样定义:
__declspec(dllexport) void __stdcall ConvertYUVToRGB(unsigned char *src0,unsigned char *src1,unsigned char *src2,unsigned char *dst_ori,int width, int height)
{
// 那些你找的代码。
}
在 C# 中,这样调用:
[DllImport("YUVToRGB.dll", CharSet = CharSet.Ansi,CallingConvention = CallingConvention.StdCall)]
public static extern ConvertYUVToRGB(IntPtr src0,IntPtr rc1,IntPtr src2,IntPtr dst_ori,int width, int height);
byte[] src0 = new byte[1024];
byte[] src1 = new byte[1024];
byte[] src2 = new byte[1024];
byte[] dst_ori = new byte[1024];
ConvertYUVToRGB(src0,src1,src2,dst_ori,640,480);