Ich bin auf der Suche nach der Win32-API in einem Projekt, an dem ich arbeite. Ich habe jedoch keine Ahnung, wie ich die Win32-API von meinem Cygwin-Projekt aus aufrufen soll. Kann mir jemand in die richtige Richtung zeigen?Wie rufe ich die Win32-API von einem Cygwin-Programm
Antwort
Auf die Win32-API kann von einem Cygwin-Programm aus zugegriffen werden, indem die Headerdatei "windows.h" eingeschlossen wird. Es bedeutet natürlich, dass Sie die win32-Pakete installiert haben. Hier ist ein Beispiel-Programm:
#include <iostream>
#include <string>
#include <windows.h>
int main(int argc, char *argv[])
{
std::string val;
if (argc > 1)
{
val = argv[1];
}
std::cout << "You typed: " << val << std::endl;
::MessageBox(NULL, val.c_str(), "You Typed:", MB_OK);
return 0;
}
Dies kann mit „make Dateiname“ kompiliert und verknüpft werden, in denen filename.cpp die obige Quelle enthält. Führen Sie dann aus, indem Sie an der Bash-Eingabeaufforderung ./filename xxxx eingeben. Dann erscheint xxxx in einem Nachrichtenfenster.
Interessant ... Ich werde das versuchen. Wie sieht das Aussehen dieses Beispiels aus, erzeugt es ein Popup-Fenster? * grübelt * Wenn ja, ist das vielleicht eine wunderbare Sache! – redhotspike
Ja, es erstellt ein Popup-Fenster. Stellen Sie sicher, dass Sie die win32-Entwicklungspakete installiert haben. Ich mache normalerweise eine vollständige Installation von Cygwin, so dass ich Ihnen nicht sagen kann, welche spezifischen aus der Hand. –
Ich habe das Gefühl, gerade eine 100-Dollar-Rechnung gefunden zu haben ... im Ernst: genau das habe ich gesucht! – redhotspike
Sie am Cygwin FAQ aussehen könnte (speziell 6.9 Wie verwende ich Win32-API-Aufrufe?)
Natürlich benötigen Sie einen Halt der WIN32API Header zu bekommen - die beste Option zum Download ist/install ein Fre C++ Compiler (zB MinGW) und beziehen sich auf seine Header.
Gute Sachen! Vielen Dank. Als weitere Referenz fand ich [Verwenden der Win32-Datei-API in Cygwin-Anwendungen] (http://cygwin.com/cygwin-ug-net/using.html#pathnames-win32-api) sollte jemand es brauchen. – redhotspike
Wenn Sie Perl kennen, können Sie mit dem win32 :: GUI-Modul Fenster und Dialoge erstellen. Stellen Sie sicher, dass Perl5 in Ihrer Cygwin-Installation enthalten war.
Run cpan von der Cygwin-Kommandozeile die cpan Dolmetscher erhalten dann eine win32 :: GUI erhalten.
**To Get Familiar with win32::GUI**
===========================================
win32-gui-demos.pl for a tutorial
man 1 win32-gui-demos.pl for an overview -or-
perldoc win32-gui-demos.pl for an overview
perldoc win32::GUI for an intro
Wenn die Tutorials von seinen Menüs laufen nicht, kopieren Sie einfach und fügen Sie sie in eine vi-Datei und machen ausführbare sie, wenn gespeichert.
zB: (einfachen Dialog zu verbessern)
#!perl -w
use strict;
use warnings;
use Win32::GUI();
my $main = Win32::GUI::DialogBox->new(
-name => 'Main',
-text => 'Continue with Outlook Backup?',
-width => 200,
-height => 200
);
$main->AddButton(
-name => 'Default',
-text => 'Ok',
-default => 1, # Give button darker border
-ok => 1, # press 'Return' to click this button
-width => 60,
-height => 20,
-left => $main->ScaleWidth() - 140,
-top => $main->ScaleHeight() - 30,
);
$main->AddButton(
-name => 'Cancel',
-text => 'Cancel',
-cancel => 1, # press 'Esc' to click this button
-width => 60,
-height => 20,
-left => $main->ScaleWidth() - 70,
-top => $main->ScaleHeight() - 30,
);
$main->Show();
Win32::GUI::Dialog();
exit(0);
sub Main_Terminate {
return -1;
}
sub Default_Click {
print "OK to Proceed Selected\n";
return 0;
}
sub Cancel_Click {
print "Cancel Backup Selected\n";
return 1;
}
- 1. Wie rufe ich eine Flask-Ansicht von einem anderen an?
- 2. Android: Wie rufe ich startResolutionForResult von einem Service auf?
- 3. ruby win32api & structs (VerQueryValue)
- 4. Wie rufe ich sc create von einem Powershell-Skript auf
- 5. Wie rufe ich C++ Funktionen von einem Lua-Skript auf?
- 6. Wie rufe ich Werte von dojo.data.ItemFileReadStore
- 7. Wie rufe ich Enumerable.Join von F #?
- 8. Wie rufe ich die ReplaceFile-Funktion von C# auf?
- 9. Wie rufe ich C von Go über die "Fremdfunktionsschnittstelle" an?
- 10. Wie rufe ich Python-Code von Ruby?
- 11. Win32 vs Win32api
- 12. Wie rufe ich die Graphviz-GUI über die Befehlszeile auf?
- 13. Java-Wie rufe ich eine Methode mit einem Rückgabetyp
- 14. Wie rufe ich eine Methode auf, die ein Hashwert ist?
- 15. Wie rufe ich von v-imode in das Systemregister?
- 16. Wie rufe ich einen WCF-Webdienst von jQuery auf?
- 17. Wie rufe ich MVC Controller von mit Javascript-Funktion
- 18. Wie rufe ich statische Klassenmethoden von Msbuild auf?
- 19. Wie rufe ich eine Controller-Methode von JQuery?
- 20. Wie rufe ich animateAlongsideTransition in Swift?
- 21. Wie rufe ich die Python-Liste während des Debuggens auf?
- 22. Wie rufe ich Ajax, während die Tabellenzeile angehängt?
- 23. Wie rufe ich die InsertionSort-Methode hier auf?
- 24. Wie rufe ich Redis StringSet() aus F #
- 25. Wie rufe ich IL2JS richtig auf?
- 26. Wie rufe ich C++ - Compiler programmgesteuert auf?
- 27. Wie rufe ich eine Methode, die eine InterruptedException in einem JButton ActionListner benötigt
- 28. Wie rufe ich WCF-Client von Excel 2003 VBA auf?
- 29. Wie rufe ich Dajax/Dajaxice Funktionen von meiner Django Vorlage
- 30. Wie rufe ich mysql TEMPORARY TABLE von CodeIgniter?
Können Sie das konkretisieren, was Sie zu tun versuchen? –
Sicher; Dies bezieht sich auf eine andere Frage, die ich gestellt habe: [Wie man Bytes von einem Gerät liest] (http://stackoverflow.com/questions/9946795/how-to-read-bytes-from-a-device-using-cc- in-windows # comment12708876_9946795) – redhotspike