mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-13 16:25:25 +00:00
71 lines
1.4 KiB
Odin
71 lines
1.4 KiB
Odin
#foreign_system_library "winmm" when ODIN_OS == "windows";
|
|
#import win32 "sys/windows.odin" when ODIN_OS == "windows";
|
|
#import "fmt.odin";
|
|
|
|
timeGetTime :: proc() -> u32 #foreign #dll_import
|
|
GetSystemTimeAsFileTime :: proc(SystemTimeAsFileTime : ^win32.FILETIME) #foreign #dll_import
|
|
|
|
GetCommandLineArguments :: proc() -> []string {
|
|
argString := win32.GetCommandLineA();
|
|
fullArgString := to_odin_string(argString);
|
|
// Count Spaces
|
|
for r : fullArgString {
|
|
fmt.println(r);
|
|
}
|
|
}
|
|
|
|
to_odin_string :: proc(c: ^byte) -> string {
|
|
s: string;
|
|
s.data = c;
|
|
while (c + s.count)^ != 0 {
|
|
s.count += 1;
|
|
}
|
|
return s;
|
|
}
|
|
//("Hellope!\x00" as string).data
|
|
|
|
MAGIC_VALUE :: 0xCA5E713F;
|
|
|
|
timing_file_header :: struct #ordered {
|
|
MagicValue : u32;
|
|
}
|
|
|
|
timing_file_date :: struct #ordered {
|
|
E : [2]u32;
|
|
}
|
|
|
|
timing_file_entry_flag :: enum {
|
|
Complete = 0x1,
|
|
NoErrors = 0x2,
|
|
}
|
|
|
|
timing_file_entry :: struct #ordered {
|
|
StarDate : timing_file_date;
|
|
Flags : u32;
|
|
MillisecondsElapsed : u32;
|
|
}
|
|
|
|
timing_entry_array :: struct #ordered {
|
|
Entries : []timing_file_entry;
|
|
}
|
|
|
|
GetClock :: proc () -> u32 {
|
|
return timeGetTime();
|
|
}
|
|
|
|
GetDate :: proc() -> timing_file_date {
|
|
Result : timing_file_date;
|
|
FileTime : win32.FILETIME;
|
|
GetSystemTimeAsFileTime(^FileTime);
|
|
|
|
Result.E[0] = FileTime.lo;
|
|
Result.E[1] = FileTime.hi;
|
|
|
|
return Result;
|
|
}
|
|
|
|
main :: proc () {
|
|
EntryClock := GetClock();
|
|
GetCommandLineArguments();
|
|
}
|