Windows Header in Linux einbinden

K

KASKRA

Mitglied
Ich brauche für ein programm windows.h wo kann man sich die downloaden und wo muss ich sie reinkopieren verwende Ubuntu und als compiller g++
 
Was haelt dich davon ab, eine Suchmaschine zu benutzen?
 
Bist du sicher, dass du weißt, welchen sinn und Zweck eine Header-Datei erfüllt?
Wie auch immer, mit MinGW (http://www.mingw.org/) kannst du unter Linux Programme für Windows cross-compilen, windowsspezifische Header sind da natürlich auch bei.
 
Nichts hat mich davon abgehalten ,durch google erhielt ich keine Antwort auf meine Frage
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Ok hab jetz MinGw installiert und wie compiliere ich jetzt was damit?
Danke
Wenn ich <windows.h> einbinde kommt noch immer der fehler das es nicht gefunden wurde.
 
Zuletzt bearbeitet:
Genau so, wie vorher auch, nur dass du statt g++ den entsprechenden Compiler von MinGW aufrufst.
Also bei mir geht es etwa so:
i586-mingw32msvc-g++ -o dateiname.exe dateiname.cpp
 
hi,

die windows.h Datei enthält befehle die auf die windows-API weitergeleitet werden, meine frage ist nun ob es eine windows.h Datei gibt die die gleichen befehle auf die linux-API weiterleitet so dass die damit compilierten Programme nativ unter linux ausführen kann.

mfg
treaki
 
die windows.h Datei enthält befehle die auf die windows-API weitergeleitet werden
Nein. Header-Dateien enthalten z. B. Funktions-/Variablendeklarationen. windows.h ist in Windows enthalten (soweit ich weiß - benutze kein Windows). Wenn, dann enthält windows.h eben Deklarationen von API-Funktionen.

meine frage ist nun ob es eine windows.h Datei gibt die die gleichen befehle auf die linux-API weiterleitet so dass die damit compilierten Programme nativ unter linux ausführen kann.
Nun, willst du den Quellcode eines für Windows geschriebenen Programms für Linux kompillieren, musst du das Programm eben portieren.
Für bereits kompillierte Windows-Programme gibt es wine.
 
hi,

wie portiert man dann beispielsweise dieses Programm:

Code:
#include <windows.h>
#include <conio.h>
#include <iostream>

using namespace std;

int main()
{
  MEMORYSTATUS lpBuffer;
  lpBuffer.dwLength = sizeof(MEMORYSTATUS);
  GlobalMemoryStatus (&lpBuffer);


  cout<<"Prozent benutzter Arbeitsspeicher: "
      <<lpBuffer.dwMemoryLoad<<"%"<<endl

      <<"Prozent freier Arbeitsspeicher:    "
      <<100-lpBuffer.dwMemoryLoad<<"%"<<endl

      <<"Gesamter Arbeitsspeicher :         "
      <<lpBuffer.dwTotalPhys/1024/1024<<"MB"<<endl

      <<"Freier  Arbeitsspeicher:           "
      <<lpBuffer.dwAvailPhys/1024/1024<<"MB";

  getch();
  printf("\n");
  return 0;
}

mfG
treaki
 
Entweder du liest die Datei /proc/meminfo aus oder verwendest die Funktion sysconf() (man 3 sysconf). Ich habe die letztere Möglichkeit genommen (ich kann nur [etwas] C, kein C++, sorry...):
Code:
#include <stdlib.h> /* exit() */
#include <stdio.h> /* printf() */
#include <unistd.h> /* sysconf() */

long getInfoAssert( int what )
{
	long infoval = sysconf( what );

	if( infoval == -1 )
	{	// Something went wrong
		fprintf( stderr, "Could not get configuration information for "
						 "option %i - aborting.\n", what );
		exit( 1 );
	}

	return infoval;
}


int main( void )
{
	long page_size   = getInfoAssert( _SC_PAGESIZE ); /* bytes */
	long pages_total = getInfoAssert( _SC_PHYS_PAGES );
	long pages_avail = getInfoAssert( _SC_AVPHYS_PAGES );
	long pages_used  = pages_total - pages_avail;

	printf( "Total RAM: %li MiB\n", pages_total * page_size / 1024 / 1024 );
	printf( "Used RAM : %li MiB (%.1Lf%%)\n",
				pages_used * page_size / 1024 / 1024,
				( pages_used / (long double) pages_total ) * 100L );
	printf( "Free RAM : %li MiB (%.1Lf%%)\n", pages_avail * page_size / 1024 / 1024,
				( pages_avail / (long double) pages_total ) * 100L );

	return 0;
}

Ausgabe auf meinem System:
Code:
Total RAM: 493 MiB
Used RAM : 483 MiB (98.0%)
Free RAM : 9 MiB (2.0%)
 

Ähnliche Themen

Microsoft Windows: Sudo findet seinen Weg von Linux nach Redmond

Free Download Manager: Offizielle Webseite verbreitete 3 Jahre lang Linux-Malware (Update)

Free Download Manager: Offizielle Webseite verbreitete 3 Jahre lang Linux-Malware

Linux-Gaming: Mit welcher Distribution laufen Windows-Games am besten?

Linux Gaming: DXVK 2.3.1 mit Performance-Spritze für Nvidia [Notiz]

Zurück
Oben