c#调用c++ 尝试读取或写入受保护的内存解决方案

c#调用c++ 尝试读取或写入受保护的内存
c#调用c++ 尝试读取或写入受保护的内存,怎么解决

c++  API:

void MD_InitMessageInfo(
  MD_MessageInfo* MessageInfo         // pointer to MD_MessageInfo struct
)

The MD_InitMessageInfo structure initializes an MD_MessageInfo structure in
preparation for sending an email message using MD_SpoolMessage.

Parameters

  MessageInfo - pointer to an MD_MessageInfo structure.  This members of this
                structure are cleared and the priority member is set to
                MD_PRECEDENCE_NORMAL.

Remarks

  You should call this function immediately after declaring an MD_MessageInfo
  structure.

Example

  MD_MessageInfo MessageInfo;
  MD_InitMessageInfo(&MessageInfo);



c# API

MDUser.InitMessageInfo MessageInfo

This method initializes the MessageInfo object in preparation for sending an email message 
using MDUser.SpoolMessage.

Parameters

  MessageInfo - MDMessageInfo ojbect.  The priority attribute is set to
                MD_PRECEDENCE_NORMAL.

Remarks

  You should call this method immediately after creating an instance of the MDMessageInfo object.



 MDUser mdu = new MDUser();
            MDMessageInfo MessageInfo = new MDMessageInfo();

            MessageInfo.To = "test1@ceshi.com";
            MessageInfo.From = "test2@ceshi.com";
            MessageInfo.Subject = "邮件主题";
            MessageInfo.MessageBody = "邮件正文内容";

            mdu.InitMessageInfo(MessageInfo);



程序运行到 InitMessageInfo  异常:尝试读取或写入受保护的内存

C++ 受保护内存

------解决方案--------------------
参数错误···
------解决方案--------------------

MDUser mdu = new MDUser();
MDMessageInfo MessageInfo = new MDMessageInfo();

MessageInfo.To = "test1@ceshi.com";
MessageInfo.From = "test2@ceshi.com";
MessageInfo.Subject = "邮件主题";
MessageInfo.MessageBody = "邮件正文内容";
// The priority attribute is set to MD_PRECEDENCE_NORMAL.
MessageInfo.Priority = MD_PRECEDENCE_NORMAL; // 自己在接口文档中找这个常量的定义

mdu.InitMessageInfo(ref MessageInfo); // 标记 ref 

------解决方案--------------------
更多关于向非托管代码传递指针的说明
http://www.cnblogs.com/lihuixian001/archive/2013/03/02/2939712.html
------解决方案--------------------
InitMessageInfo成员函数声明的地方也要标记ref