c#调用C++ 尝试读取或写入
场景:c#调用c++ 尝试读取或写入受保护的内存解决方案
c#调用c++ 尝试读取或写入受保护的内存
c#调用c++ 尝试读取或写入受保护的内存,怎么解决
c++ API:
c# API
程序运行到 InitMessageInfo 异常:尝试读取或写入受保护的内存
------解决方案--------------------
参数错误···
------解决方案--------------------
------解决方案--------------------
更多关于向非托管代码传递指针的说明
http://www.cnblogs.com/lihuixian001/archive/2013/03/02/2939712.html
------解决方案--------------------
InitMessageInfo成员函数声明的地方也要标记ref
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