cgen: windows fixes

pull/4192/head
Alexander Medvednikov 2020-04-02 13:09:39 +02:00
parent 4981c5a870
commit 1fe2933dd9
1 changed files with 9 additions and 5 deletions

View File

@ -657,7 +657,7 @@ fn (g mut Gen) gen_assign_stmt(assign_stmt ast.AssignStmt) {
else {} else {}
} }
is_decl := assign_stmt.op == .decl_assign is_decl := assign_stmt.op == .decl_assign
g.write('/*assign_stmt*/') //g.write('/*assign_stmt*/')
if is_decl { if is_decl {
g.write('$styp ') g.write('$styp ')
} }
@ -733,7 +733,11 @@ fn (g mut Gen) gen_fn_decl(it ast.FnDecl) {
g.reset_tmp_count() g.reset_tmp_count()
is_main := it.name == 'main' is_main := it.name == 'main'
if is_main { if is_main {
g.write('int ${it.name}(int argc, char** argv') if g.pref.os == .windows {
g.write('int wmain(int argc, wchar_t *argv[], wchar_t *envp[]')
} else {
g.write('int ${it.name}(int argc, char** argv')
}
} }
else { else {
mut name := it.name mut name := it.name
@ -789,9 +793,9 @@ fn (g mut Gen) gen_fn_decl(it ast.FnDecl) {
if g.autofree { if g.autofree {
g.writeln('free(_const_os__args.data); // empty, inited in _vinit()') g.writeln('free(_const_os__args.data); // empty, inited in _vinit()')
} }
$if windows { if g.pref.os == .windows {
g.writeln('_const_os__args = os__init_os_args_wide(argc, (byteptr*)argv);') g.writeln('_const_os__args = os__init_os_args_wide(argc, argv);')
} $else { } else {
g.writeln('_const_os__args = os__init_os_args(argc, (byteptr*)argv);') g.writeln('_const_os__args = os__init_os_args(argc, (byteptr*)argv);')
} }
} }