mirror of https://github.com/decompals/wibo.git
parent
a5499f27de
commit
b7e8e5fb80
|
@ -1,9 +1,9 @@
|
|||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
if (NOT CMAKE_BUILD_TYPE)
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
|
||||
"Build type options: Debug Release RelWithDebInfo MinSizeRel" FORCE)
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
project(wibo LANGUAGES CXX)
|
||||
|
||||
|
@ -25,10 +25,11 @@ add_executable(wibo
|
|||
dll/user32.cpp
|
||||
dll/vcruntime.cpp
|
||||
dll/version.cpp
|
||||
dll/msvcrt.cpp
|
||||
files.cpp
|
||||
handles.cpp
|
||||
loader.cpp
|
||||
main.cpp
|
||||
)
|
||||
)
|
||||
target_link_libraries(wibo PRIVATE std::filesystem)
|
||||
install(TARGETS wibo DESTINATION bin)
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
#include "common.h"
|
||||
|
||||
namespace msvcrt {
|
||||
int _commode;
|
||||
int _fmode;
|
||||
|
||||
// Stub because we're only ever a console application
|
||||
void WIN_FUNC __set_app_type(int at) {
|
||||
}
|
||||
|
||||
int* WIN_FUNC __p__fmode() {
|
||||
return &_fmode;
|
||||
}
|
||||
|
||||
int* WIN_FUNC __p__commode() {
|
||||
return &_commode;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void *resolveByName(const char *name) {
|
||||
if (strcmp(name, "__set_app_type") == 0) return (void *) msvcrt::__set_app_type;
|
||||
if (strcmp(name, "__p__fmode") == 0) return (void *) msvcrt::__p__fmode;
|
||||
if (strcmp(name, "__p__commode") == 0) return (void *) msvcrt::__p__commode;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
wibo::Module lib_msvcrt = {
|
||||
(const char *[]){
|
||||
"msvcrt40",
|
||||
"msvcrt40.dll",
|
||||
nullptr,
|
||||
},
|
||||
resolveByName,
|
||||
nullptr,
|
||||
};
|
2
main.cpp
2
main.cpp
|
@ -77,6 +77,7 @@ extern const wibo::Module lib_bcrypt;
|
|||
extern const wibo::Module lib_crt;
|
||||
extern const wibo::Module lib_kernel32;
|
||||
extern const wibo::Module lib_lmgr;
|
||||
extern const wibo::Module lib_msvcrt;
|
||||
extern const wibo::Module lib_ntdll;
|
||||
extern const wibo::Module lib_ole32;
|
||||
extern const wibo::Module lib_user32;
|
||||
|
@ -88,6 +89,7 @@ const wibo::Module * wibo::modules[] = {
|
|||
&lib_crt,
|
||||
&lib_kernel32,
|
||||
&lib_lmgr,
|
||||
&lib_msvcrt,
|
||||
&lib_ntdll,
|
||||
&lib_ole32,
|
||||
&lib_user32,
|
||||
|
|
Loading…
Reference in New Issue