太难了!!!!!!!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 --------------------编程问答-------------------- 内存地址错误 ,返回的指针有问题···· --------------------编程问答--------------------
Try this. --------------------编程问答-------------------- 我也遇到这个问题,急死人了,坐等答案!
补充:.NET技术 , C#