Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Evtl. ist es technisch nicht möglich, da der GCC ein anderes Objekt-Datei-Format verwendet und man diese Informationen nicht in die Dateien einbinden kann. Dafür das Format, den Compiler und Linker zu ändern ist vermutlich zuviel Aufwand (zumal der Linker zu den GNU binutils gehört und nicht zum GCC).Ich verwende nicht den GCC, aber gibt es einen Grund, warum der #pragma comment nicht implementieren will? Ob man es verwenden will ist ja dann immernoch jedem selbst überlassen. Ich finde die Funktionalitäten da wahnsinnig praktisch!
#include <shlobj.h>
#include <stdbool.h>
#include <string.h>
#include <time.h>
#include <w32api.h>
#include <stdio.h>
#include <stdlib.h>
#include <wininet.h>
int DownloadFile(char url[],char file[])
{
HINTERNET hInternet;
HINTERNET hFile;
HGLOBAL hGlobal;
FILE* fFile;
CHAR* szBuf;
BOOL bGO = TRUE;
DWORD dwReadSize = 256;
CHAR lpszFileSize[15];
INT iFileSize;
INT iStep;
INT iDownloadedBytes = 0;
DWORD dwDummy;
TCHAR szErrBuf[256];
LPCTSTR httpFile;
LPCTSTR targetFile;
LPVOID lpInfo;
hInternet = InternetOpen("Downloader", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if(!hInternet)
{
return -1;
}
hFile = InternetOpenUrl(hInternet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0);
if(!hFile)
{
InternetGetLastResponseInfo(&dwDummy, szErrBuf, &dwReadSize);
InternetCloseHandle(hInternet);
return -1;
}
dwDummy = 15;
HttpQueryInfo(hFile, HTTP_QUERY_CONTENT_LENGTH, (LPVOID)lpszFileSize, &dwDummy, NULL);
iFileSize = atoi(lpszFileSize);
if(iFileSize == 0)
{
InternetCloseHandle(hFile);
InternetCloseHandle(hInternet);
return -1;
}
iStep = (iFileSize / 100 == 0) ? 1 : iFileSize / 100;
hGlobal = GlobalAlloc(GMEM_FIXED, iStep + 1);
szBuf = (CHAR*)GlobalLock(hGlobal);
fFile = fopen(file, "w+b");
while(bGO)
{
bGO = InternetReadFile(hFile, szBuf, iStep, &dwReadSize);
if(bGO && dwReadSize == 0)
break;
szBuf[dwReadSize] = '\0';
fwrite(szBuf, 1, dwReadSize, fFile);
iDownloadedBytes = iDownloadedBytes + iStep;
}
fclose(fFile);
GlobalUnlock(hGlobal);
GlobalFree(hGlobal);
InternetCloseHandle(hFile);
InternetCloseHandle(hInternet);
}