Windows Vista: DLL 'x.dll' kann nicht geladen werden: Ungültiger Zugriff auf Speicherort. (DllNotFoundException)

Ich habe heute Nachmittag auf einer Kundenbox mit Windows Vista getestet (Er war zu Hause, aber ich teste auf einer Business Edition mit den gleichen Ergebnissen).

Wir verwenden eine .DLL, die die Hardware-ID des Computers abruft. Die Bedienung ist sehr einfach und das von mir erstellte Beispielprogramm funktioniert. Die Dll istThis von AzSdk. In der Tat funktioniert dies perfekt unter Windows XP. Aus irgendeinem seltsamen Grund erhalten wir in unserem Projekt (viel größer) diese Ausnahme:

Exception Type:        System.DllNotFoundException
Exception Message:     Unable to load DLL 'HardwareID.dll': Invalid access to memory location. (Exception from HRESULT: 0x800703E6)
Exception Target Site: GetHardwareID

Ich weiß nicht, was das Problem verursachen kann, da ich die volle Kontrolle über den Ordner habe. Das Projekt ist eine c # .net Windows Forms-Anwendung, und bis auf den Aufruf für die externe Bibliothek funktioniert alles einwandfrei.

Ich erkläre es so: (Anmerkung: es istnich Eine COM-Bibliothek, die nicht registriert werden muss.

[DllImport("HardwareID.dll")]
public static extern String GetHardwareID(bool HDD,
   bool NIC, bool CPU, bool BIOS, string sRegistrationCode);

Und dann ist der aufrufende Code ganz einfach:

private void button1_Click(object sender, EventArgs e)
{
    textBox1.Text = GetHardwareID(cb_HDD.Checked, 
                                  cb_NIC.Checked, 
                                  cb_CPU.Checked, 
                                  cb_BIOS.Checked, 
                                 "*Registration Code*");
}

Wenn Sie eine Beispielanwendung erstellen, funktioniert dies, in meinem Projekt jedoch nicht. Unter XP funktioniert gut. Irgendwelche Ideen darüber, was ich in Vista tun soll, damit dies funktioniert? Wie gesagt, der Ordner und seine Unterordner haben Vollzugriff für "Alle".

AKTUALISIEREN Ich habe Vista SP 1 nicht installiert.

UPDATE 2: Ich habe Vista SP1 installiert und jetzt, mit deaktivierter Benutzerkontensteuerung, funktioniert nicht einmal das einfache Beispiel !!! :( Verdammt Vista.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage