当前位置:编程学习 > C#/ASP.NET >>

太难了!!!!!!!C#调用DLL,出现尝试读取或写入受保护的内存错误

部分代码如下:
[DllImport(@"advapi32.dll", EntryPoint = "#1")]
public static extern int ControlService(IntPtr SVHANDLE, double dwNumServiceArgs, ref SERVICE_STATUS lpServiceArgVectors);

public struct SERVICE_STATUS
        {
            public uint dwServiceType;
            public uint dwCurrentState;
            public uint dwControlsAccepted;
            public uint dwWin32ExitCode;
            public uint dwServiceSpecificExitCode;
            public uint dwCheckPoint;
            public uint dwWaitHint;
        }
SERVICE_STATUS ccc = new SERVICE_STATUS();

IntPtr sc_hndl = OpenSCManager(null, null, SC_MANAGER_CONNECT); ==>返回正确
IntPtr svc_hndl = OpenService(sc_hndl, svcName, SERVICE_STOP); ==>返回正确
int i = ControlService(svc_hndl, SERVICE_CONTROL_STOP, ref ccc);  ==>出错地方:尝试读取或写入受保护的内存

请问怎么解决??????



--------------------编程问答-------------------- 非常恼火,DLL里函数参数是字符串,结构,或者字符数组等形式的都会出现这错误。 --------------------编程问答-------------------- 用stringbuilder --------------------编程问答-------------------- 内存地址错误 ,返回的指针有问题···· --------------------编程问答--------------------
引用 2 楼 yuwenge 的回复:
用stringbuilder


Try this. --------------------编程问答-------------------- 我也遇到这个问题,急死人了,坐等答案!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,