Forum: PC-Programmierung SecureZeroMemory() fehlt


von Ma N. (malny)


Lesenswert?

Hey Leute!
Ich suche seit Tagen eine Möglichkeit zur Kommunikation mit der RS232 
Schnittstelle und µC's (ja ich habe n Termial, aber ich will die Daten 
direkt verarbeiten). Über WindowsApi hab ich jetzt anscheinend eine 
Möglichkeit gefunden. Bin gerade dabei den Code

http://msdn.microsoft.com/en-us/library/aa363201%28v=VS.85%29.aspx

hier abzutippen und zu interpretieren, damit ich auch weiß was ich dabei 
mache...bis zur Funktion SecureZeroMemory() funktioniert das auch alles. 
Dann gibt mir der Compiler (Dev-Cpp) die Fehlermeldung aus:

"[Linker error] undefined reference to SecureZeroMemory"

Heißt für mich, dass die Funktion in windows.h nicht beschrieben ist? 
Habe mich mal über die Funktion ein wenig schlau gemacht. Die scheint ja 
nicht all zu schwer zu sein. Jedoch um Fehler zu vermeiden (da ich auch 
nicht der erfahrene Programmierer bin) würde ich die gerne so einbinden. 
Hat jemand einen Tip für mich?


EDIT: benutze jetzt erst mal ZeroMemory - soll ja ähnlich sein, nur in 
manchen Fällen zum Absturz führen?

von Vlad T. (vlad_tepesch)


Lesenswert?

ich vermute, du hast WinVer nicht defineirt, weswegen er irgendwas als 
Default nimmt, was älter als win 2000 ist (bei VS2005 nimmt er NT 4.0)

von Ma N. (malny)


Lesenswert?

Das ist das erste mal, dass ich mit der WinApi arbeite - leider sagt es 
mir nichts! Was genau muss ich wo definieren?

Wie hier?

http://msdn.microsoft.com/de-de/library/6sehtctf%28VS.80%29.aspx

Ich arbeite mit Win7!

Dann klappts auch nicht!

Danke für die Hilfe. Bräuchte wohl n Crashkurs in WinApi eigentlich :-/

von Vlad T. (vlad_tepesch)


Lesenswert?


von Ma N. (malny)


Lesenswert?

Vielen Dank für die fixe Antwort.

Ich definiere WINVER folgend:

...
#define WINVER 0x0601
...
#include <windows.h>
...

Der fehler bei SecureZeroMemory bleibt leider nur derselbe...Ich muss 
weiterhin ZeroMemory nutzen, damit ich den Port konfigurieren kann. Ist 
das an der Stelle denn überhaupt gefährlich?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

>

Ma Ny schrieb:
> Dann gibt mir der Compiler (Dev-Cpp) die Fehlermeldung aus:
>
> "[Linker error] undefined reference to SecureZeroMemory"
>
> Heißt für mich, dass die Funktion in windows.h nicht beschrieben ist?

Nein. In windows.h (genauer im davon eingebundenen Winbase.h) ist sie 
beschrieben, und Dein Compiler kommt damit auch klar. Dein Compiler ist 
soweit richtig konfiguriert.

An der Windows-Version liegt es übrigens auch nicht, weil diese Funktion 
seit Windows 2000 Bestandteil der Win32-API ist.

Die Fehlermeldung ist eine des Linkers, und dem fehlt die 
Implementierung der Funktion in den verwendeten Libraries, die mit 
Deinem Compiler geliefert wurden.

von Vlad T. (vlad_tepesch)


Lesenswert?

Ma Ny schrieb:
> Dann gibt mir der Compiler (Dev-Cpp) die Fehlermeldung aus:
>
> "[Linker error] undefined reference to SecureZeroMemory"

Das habe ich doch glatt übersehen

Schmeiß den compiler weg.
Der und die mitgelieferten Libs sind total veraltet.

gute Alternative ist das Visual Studio Express oder der Code::Blocks 
(beide kostenlos)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.