AccessViolationException :(

06/06/2010 16:20 nkkk#1
hi ich bin grade dabe einen Bot zu schreiben, dieser besteht um einem teil aus 2 in c++ geschribenen dlls(ohne .NET) und zum andernen teil aus einer in c# geschribenen .exe. In meinem c++ code nutze ich die funktion :
PHP Code:
c++:
VirtualAllocExhProcessNULLsizeof(szLibPath), MEM_COMMITPAGE_READWRITE 
, die Memory in einem anderen Prozess alloziert, das funzt eig auch ganz gut. aber wenn ich versuche meinen selbstgeschriebene Funktion, die VirtualAllocEx benutzt, mittlens
PHP Code:
c#:
[DllImport(DllName)]
        public 
unsafe static extern Int32 StartThread(//eine selbst geschribene Funktion in einer selbstgeschriebenen Datei, die VirtualAllocEx benuzt
            
long processID
            
); 
von c# aus auzurufen bekommt ich eine exception des typs AccessViolationException
"Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

kann mir da jmd weiterhelfen?
06/06/2010 17:56 xNopex#2
[Only registered and activated users can see links. Click Here To Register...]
06/06/2010 18:39 nkkk#3
Quote:
Originally Posted by xNopex View Post
[Only registered and activated users can see links. Click Here To Register...]
half mir leider nicht weiter :( , mein problem ist ja nicht, dass StartThread nicht aufgrerufen wird, es wir ja aufgrrufen und auch bis zu einem geissen teil ausgeführt bis es dann eine Exception wirft. was aber warscheinlich nicht am Code in StartThread Liegt, denn wenn ich StartThread als ausführbare exe in c++ ausführe geht es ja.
06/07/2010 16:44 nkkk#4
so hab das problem vorrübergehend gelöst, indem ich die c++ dll als .exe schreibe und dann mitttels
PHP Code:
            Process p = new Process();
            
p.StartInfo.FileName "C:\\...   ...\\Release\\RemoteStart.exe";
            
p.StartInfo.Arguments processID.ToString();
            
p.Start(); 
ausführe.
aber dennoch fände ich die Dll methode schoner und wenn jmd was weiss wäre ich sehr erfreut.