I wrote this code and compiled it to a DLL for use in Blitz3D. However, I don't know how to get it converted for BlitzMax usage. Can someone please help me? It's simply a function to return a file's modify date in various formats.
#include <windows.h> #include <stdio.h> #define BBDECL extern "C" _declspec(dllexport) #define BBCALL _stdcall BBDECL const char * BBCALL FileModifyDate(const char *strFilepath,const int intFormat) { char* strValue = ""; char strTemp[32] = ""; char strMinutesTemp[3] = ""; char strSecondsTemp[3] = ""; char strMinutes[3] = "0"; char strSeconds[3] = "0"; WIN32_FIND_DATA w32fd; HANDLE fh = FindFirstFile(strFilepath,&w32fd); if (fh != INVALID_HANDLE_VALUE) { FILETIME FileTime = w32fd.ftLastWriteTime; FILETIME LocalFileTime; SYSTEMTIME SystemTime; if (FileTimeToLocalFileTime(&FileTime,&LocalFileTime) == 0) return ""; if (FileTimeToSystemTime(&LocalFileTime,&SystemTime) == 0) return ""; sprintf(strMinutesTemp,"%d",SystemTime.wMinute); sprintf(strSecondsTemp,"%d",SystemTime.wSecond); // Pad single-digit minutes and seconds with 0's. if (strlen(strMinutesTemp) == 1) strcat(strMinutes,strMinutesTemp); else strcpy(strMinutes,strMinutesTemp); if (strlen(strSecondsTemp) == 1) strcat(strSeconds,strSecondsTemp); else strcpy(strSeconds,strSecondsTemp); switch (intFormat) { case 0: // "day/month/year hour:minute:seconds" sprintf(strTemp,"%d/%d/%d %d:%s:%s",SystemTime.wMonth,SystemTime.wDay,SystemTime.wYear,SystemTime.wHour,strMinutes,strSeconds); break; case 1: // "day/month/year" sprintf(strTemp,"%d/%d/%d",SystemTime.wMonth,SystemTime.wDay,SystemTime.wYear); break; case 2: // "hour:minute:seconds" sprintf(strTemp,"%d:%s:%s",SystemTime.wHour,strMinutes,strSeconds); break; case 3: // time in seconds since midnight int intSeconds = 3600 * SystemTime.wHour + 60 * SystemTime.wMinute + SystemTime.wSecond; sprintf(strTemp,"%d",intSeconds); break; } strcpy(strValue,strTemp); FindClose(fh); } return strValue; }