c编的DLL中有一个struct类形要作为参数,c#应该怎么声明?

koy0755 2009-07-20 11:07:50
ypedef struct {
int nChannels;
int width;
int height;
char* imageData;
} SimpleImage;

typedef struct {
bool success
int cpBmpIndex
hbcpSimpleImage* cpBmp;//关键是这两处又有一个指向另一种结构的指针。
hbcpSimpleImage* cpBmpBinary;//关键是这两处又有一个指向另一种结构的指针。
RECT cpRect;
int nCpTexts;
SimpleImage* pCpTexts;
} RecogniseResult;

我的SimpleImage试过这样定义不知行不行。
[StructLayout(LayoutKind.Sequential)]
struct SimpleImage
{
public int nChannels;
public int width;
public int height;
[MarshalAs(UnmanagedType.ByValArray)]
public char[] imageData;//这里不知能不能这样。
}
...全文
69 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenchangxiong 2009-07-20
  • 打赏
  • 举报
回复
所有涉及到指针的都得用IntPtr来操作,
所以,
hbcpSimpleImage* cpBmp;//关键是这两处又有一个指向另一种结构的指针。
hbcpSimpleImage* cpBmpBinary;//关键是这两处又有一个指向另一种结构的指针。
SimpleImage* pCpTexts;
都用IntPtr代替
记得最后释放内存用Marshal类中的相应释放掉
chenchangxiong 2009-07-20
  • 打赏
  • 举报
回复
所有涉及到指针的都得用IntPtr来操作,
所以,
hbcpSimpleImage* cpBmp;//关键是这两处又有一个指向另一种结构的指针。
hbcpSimpleImage* cpBmpBinary;//关键是这两处又有一个指向另一种结构的指针。
SimpleImage* pCpTexts;
都用IntPtr代替
记得最后释放内存用Marshal类中的相应释放掉

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧