myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin

Ressourcen
» guide to C#
» openbook: Visual C#
» openbook: OO
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Rund um die Programmierung » DllImport von PcHelpWare Dll 1SCDLL.dll
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

DllImport von PcHelpWare Dll 1SCDLL.dll

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Ali_Spindler
myCSharp.de-Mitglied

Dabei seit: 17.05.2011
Beiträge: 45
Entwicklungsumgebung: Visual Studio 2010 Prof.


Ali_Spindler ist offline

DllImport von PcHelpWare Dll 1SCDLL.dll

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo an alle,

ich sitze nun schon seit geraumer Zeit an einem Problem. Ich probiere vergebens die Funktion Start_server aus eine PcHelpWare Dll names 1SCDLL.dll aufzurufen.

Bisher habi ich es so probiert:

C#-Code:
[DllImport("1SCDLL.dll",EntryPoint="Start_server", CharSet = CharSet.Auto,  SetLastError = true)]
        public static extern void Start_server(StringBuilder strID, StringBuilder strRepeaterAddr, StringBuilder intListenPort, int intRepeaterPort, StringBuilder strPasswd, bool blDebug, StringBuilder blProxy);

....

In einem c++ Projekt hab ich gesehen dass die Funktion mit den Parametern

C#-Code:
char *ID, char *repeater,char *direct,int port,char *passwd,bool proxy,char *classname

aufgerufen wird.
Wenn die Funktion nun aufgerufen wird, bekomme ich eine Exception mit der Meldung:

Fehlermeldung:
Unzulässiger Zugriff auf einen Speicherbereich. (Ausnahme von HRESULT: 0x800703E6) kann nicht geladen werden.

Alle Dll´s liegen im Anwendungsverzeichnis.

Kann mir bitte jemand weiterhelfen was ich falsch mache?

mfG Ali
24.04.2012 08:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zicore Zicore ist männlich
myCSharp.de-Mitglied

Dabei seit: 27.06.2007
Beiträge: 403
Entwicklungsumgebung: VS2015


Zicore ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Importiere dir GetLastError und schau mal was du für ein Fehler zurückbekommst.
24.04.2012 09:28 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Ali_Spindler
myCSharp.de-Mitglied

Dabei seit: 17.05.2011
Beiträge: 45
Entwicklungsumgebung: Visual Studio 2010 Prof.

Themenstarter Thema begonnen von Ali_Spindler

Ali_Spindler ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

C#-Code:
  [DllImport("coredll.dll", SetLastError = true)]
        static extern Int32 GetLastError();

......
.....

try
{
Start_server(new StringBuilder(""), new StringBuilder(""), new StringBuilder(""), 56, new StringBuilder(""), false);
int lastError = Marshal.GetLastWin32Error();

}
catch (Exception ex)
{
int lastError = Marshal.GetLastWin32Error();
}

hab das ganze jetzt so implementiert. Im catch-Block bekomme ich eine 0 zurück.

mfG
24.04.2012 09:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
herbivore
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2627.gif


Dabei seit: 11.01.2005
Beiträge: 49.416
Entwicklungsumgebung: csc/nmake (nothing is faster)
Herkunft: Berlin


herbivore ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Ali_Spindler,

für Eingabeparameter solltest du String und nicht StringBuilder übergeben.

herbivore
24.04.2012 10:39 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Ali_Spindler
myCSharp.de-Mitglied

Dabei seit: 17.05.2011
Beiträge: 45
Entwicklungsumgebung: Visual Studio 2010 Prof.

Themenstarter Thema begonnen von Ali_Spindler

Ali_Spindler ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo herbivore,

hab auch schon string probiert, jedoch mit dem gleichen ergebnis. Gibt´s eine andere Möglichkeit um zu schauen ob er eventuell irgendwelche anderen dll´s nicht findet?

Ich bin am verzweifeln, egal was ich probiere, ich erhalte immer oben genannte Exception.

mfG Ali
24.04.2012 10:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Karill Endusa Karill Endusa ist männlich
myCSharp.de-Mitglied

Dabei seit: 08.09.2010
Beiträge: 269
Entwicklungsumgebung: VS2013 Ultimate
Herkunft: Hessen


Karill Endusa ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zum Nachsehen, ob irgendwelche DLL's nicht gefunden werden, benutze ich ganz gerne den  Dependency Walker
24.04.2012 11:44 Beiträge des Benutzers | zu Buddylist hinzufügen
Ali_Spindler
myCSharp.de-Mitglied

Dabei seit: 17.05.2011
Beiträge: 45
Entwicklungsumgebung: Visual Studio 2010 Prof.

Themenstarter Thema begonnen von Ali_Spindler

Ali_Spindler ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

das tool sagt dass alle dll´s gefunden wurden.

Kann es daran liegen, dass wenn meine Application als normaler user gestartet wurde, starte ich eine neu Instanz mit Administratorrechten und beende die laufende.

Kann es hier unter Win7 zu Problemen kommen?

mfG
24.04.2012 12:58 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Ali_Spindler
myCSharp.de-Mitglied

Dabei seit: 17.05.2011
Beiträge: 45
Entwicklungsumgebung: Visual Studio 2010 Prof.

Themenstarter Thema begonnen von Ali_Spindler

Ali_Spindler ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo nochmal,

mein Ziel war es eigentlich mit dieser dll einen VNC Server zu starten um mit einem Client verbinden zu können.
Als Highlight eventuell aus einem Windows Service heraus um vielleicht den UAC-Bildschirm von Win7 übertragen zu können.

Hat von euch schonmal jemand soetwas gemacht, oder irgendwelche erfahrungen dazu?

Ich bin für jeglichr Tipps dankbar.

mfG Ali
25.04.2012 11:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
rollerfreak2 rollerfreak2 ist männlich
myCSharp.de-Mitglied

images/avatars/avatar-3271.jpg


Dabei seit: 14.07.2008
Beiträge: 916
Entwicklungsumgebung: VS2008 & VS2010


rollerfreak2 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

H Ali_Spindler,

versuch mal den StringBuilder mit einer festen Größe zu initialisieren.

C#-Code:
new StringBuilder("",255)

Wenn das ein C++ dll ist dann erwartet m.W.n einen Puffer mit fester Größe.
27.04.2012 08:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
mabo
myCSharp.de-Mitglied

Dabei seit: 16.05.2007
Beiträge: 334
Entwicklungsumgebung: VS 2013 Prof. , Eclipse


mabo ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wenn das eine C++-DLL ist kann man die meines Erachtens gar nicht aufrufen (da braucht man einen Wrapper in C)

Versuch mal ausserdem die genaue Signatur der Methode rauszufinden, sonst kann man nur raten.
27.04.2012 14:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 6 Jahre.
Der letzte Beitrag ist älter als 6 Jahre.
Antwort erstellen


© Copyright 2003-2018 myCSharp.de-Team. Alle Rechte vorbehalten. 19.07.2018 14:57