C#要调用一个VB类库,接口如下:Sub SetBitMap(
ByRef ImageInfo As String,
ByRef ImageData As String )
ImageInfo:the DIB data header information: BITMAPINFOHEADER structure.
ImageData:a bit-string of DIB data.在C#中已经通过DirectShow取得Bitmap的地址,
IntPtr bitmapPtr = getBitmapFromDirectShow();
请问接下来怎么调用这个VB库?
ByRef ImageInfo As String,
ByRef ImageData As String )
ImageInfo:the DIB data header information: BITMAPINFOHEADER structure.
ImageData:a bit-string of DIB data.在C#中已经通过DirectShow取得Bitmap的地址,
IntPtr bitmapPtr = getBitmapFromDirectShow();
请问接下来怎么调用这个VB库?
解决方案 »
- VS2008打开设计窗口提示:分析EntityName时出错。
- 求高手解决!
- 求指导
- 有谁开发过收款机专用软件的,帮忙看一下.
- 请教个简单问题,控件激活事件
- C#中如何实现图的邻接矩阵和邻接表的显示
- 程序怎么设置DATEGRID中某一行中某个列的数值。
- 在Visual Studio .NET 2003中,如何把form窗口边框做成自己喜欢的样式
- 对等网中如何从一台计算机连接另一台计算机上的SQLserver2005
- 急问,关于C#多线程的问题!!!!!
- C#新手求解 绑定数据问题
- Server Error in '/nb_flag' Application. Cannot find table 0.
还有,你把VB中使用的部分代码贴出,这样别人更好理解
这个vb库的其他函数,都可以调用的,问题的关键是,如何从IntPtr bitmapPtr里面得到SetBitMap需要的两个参数。
这个函数里的参数明明是string类型的,直接在C#用string里就可以对应!getBitmapFromDirectShow();这个函数原来在VB里返回值类型是什么?
楼主,有个问题:你现在关心的重点应该是如何平台调用、互操作,对吧,比如:进行结构体映射、函数映射等
而你的函数SetBitMap(ByRef ImageInfo As String,ByRef ImageData As String )根本就是很简单的函数,
其实你的重点是BITMAPINFOHEADER ,所以,你要告诉别人BITMAPINFOHEADER 是不是一个结构体,还是仅仅是一个句柄而已!不论是句柄,还是结构体,你都要把它在VB中如何使用的贴出来,这样别人才能帮到你,这下明白没有?
http://www.taotechinfo.com/collect/2010222/n68565463.html
typedef struct tagBITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER; 对应的C#结构体:
[ StructLayout( LayoutKind.Sequential, CharSet=CharSet.Ansi )]
public struct BITMAPINFOHEADER{
public uint biSize;
public int biWidth;
public int biHeight;
public uint biPlanes;
public uint biBitCount
public uint biCompression;
public uint biSizeImage;
public int biXPelsPerMeter;
public int biYPelsPerMeter;
public uint biClrUsed;
public uint biClrImportant;
}