mikrocontroller.net

Forum: PC-Programmierung SecureZeroMemory() fehlt


Autor: Ma Ny (malny)
Datum:

Bewertung
0 lesenswert
nicht 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%2...

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?

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Ma Ny (malny)
Datum:

Bewertung
0 lesenswert
nicht 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%2...

Ich arbeite mit Win7!

Dann klappts auch nicht!

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

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ma Ny (malny)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht 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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.