我有一个Dll和它的头文件,并且我试图在C++中使用C++创建一个COM包装器。
对于大多数功能来说,这是非常简单的,因为他们返回int
或string
。HBITMAP *位图到.net位图
我在头文件中有这个结构。
virtual HRESULT STDMETHODCALLTYPE GetBMP(
int Width,
int Height,
HBITMAP *Bitmap) = 0;
我的问题是,由于我的出路我联赛C++的,我不知道如何将HBITMAP
转化为更多的东西拨付给.NET风格
在此先感谢,并请原谅我,如果写了愚蠢的事情
更新: 我想是这样的:
HBITMAP GetBMP(int Width, int Height)
{
HBITMAP bm = 0;
m_piHelper->GetBMP(Width,Height,&bm);
return bm ;
}
问题显然为t之后在C#中如何从'HBITMAP __ *'转换为'System.IntPtr使用它与位图.fromHbitmap
'GetBMP'的'[DllImport]'C#声明是你声明第三个参数为'out IntPtr'的地方。 – GSerg 2013-05-01 22:31:04
没有即时通讯不进口DLL在C#即时通讯尝试写入C++包装 – 2013-05-02 06:15:52
然后,你困惑了我们所有人。 “托管包装器”是你用C#编写的东西。如果你正在编写一个C++包装器,那可能是一个COM包装器。我编辑了你的问题来反映这一点。请随意修改相应的编辑。 (也许你*使用托管C++?) – GSerg 2013-05-02 08:03:27