Visio二次开发用到了Drawing Control控件。在控件上添加新页面时,visual编译器报内存保护故障“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”,这个问题困扰了我很久,最后google上查到,该问题为visio的一个bug,解决方法如下:
C#
// declare win32 function [DllImport("user32.dll", EntryPoint="SendMessageA")] public static extern int SendMessage(int windowHandle, uint message, int wparam, int lparam); private void LoadDocument () { // assign source file axDrawingControl1.Src = "C:\Drawing1.vsd"; // send private message to Visio to invoke workaround SendMessage(axDrawingControl1.Window.WindowHandle32, // drawing window 2100, // private Visio message 0, 0); // add page axDrawingControl1.Document.Pages.Add(); }
其他语言请参考作者 的博客。
来源:http://blogs.msdn.com/b/wmorein/archive/2007/01/26/visio-2007-bug-in-drawing-control.aspx