103 lines
2.6 KiB
C++
103 lines
2.6 KiB
C++
// basic.cpp : 定义应用程序的入口点。
|
||
//
|
||
|
||
#include "main.h"
|
||
#include "base_form.h"
|
||
#include"resource1.h"
|
||
#include <math.h>
|
||
#include "lua_wraper.h"
|
||
#include "loger.h"
|
||
|
||
enum ThreadId
|
||
{
|
||
kThreadUI
|
||
};
|
||
|
||
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
|
||
_In_opt_ HINSTANCE hPrevInstance,
|
||
_In_ LPWSTR lpCmdLine,
|
||
_In_ int nCmdShow)
|
||
{
|
||
|
||
#ifdef WIN32
|
||
WORD wdVersion = MAKEWORD(2, 2);//定义自己需要的网络库版本,这里是2.2
|
||
WSADATA wdSockMsg;//这是一个结构体
|
||
int nRes = WSAStartup(wdVersion, &wdSockMsg);//打开一个套接字
|
||
if (0 != nRes) {
|
||
switch (nRes) {
|
||
case WSASYSNOTREADY:
|
||
printf("check your library");
|
||
break;
|
||
case WSAVERNOTSUPPORTED:
|
||
printf("need updated");
|
||
break;
|
||
case WSAEINPROGRESS:
|
||
printf("need reboot");
|
||
break;
|
||
case WSAEPROCLIM:
|
||
printf("sdfsdfsa");
|
||
break;
|
||
}
|
||
}
|
||
if (2 != HIBYTE(wdSockMsg.wVersion) || 2 != LOBYTE(wdSockMsg.wVersion)) {
|
||
printf("WSACleanup");
|
||
WSACleanup();
|
||
return 0;
|
||
}
|
||
#endif
|
||
|
||
AllocConsole();
|
||
freopen("CONOUT$", "w", stdout);
|
||
|
||
LuaDelegate lua;
|
||
std::cout << std::endl;
|
||
|
||
lua.CallFuntion< lua_Number>(std::string("sds"),
|
||
123.0);
|
||
UNREFERENCED_PARAMETER(hPrevInstance);
|
||
UNREFERENCED_PARAMETER(lpCmdLine);
|
||
|
||
// 创建主线程
|
||
MainThread thread;
|
||
// 执行主线程循环
|
||
thread.RunOnCurrentThreadWithLoop(nbase::MessageLoop::kUIMessageLoop);
|
||
return 0;
|
||
}
|
||
|
||
void MainThread::Init()
|
||
{
|
||
nbase::ThreadManager::RegisterThread(kThreadUI);
|
||
|
||
// 获取资源路径,初始化全局参数
|
||
std::wstring theme_dir = nbase::win32::GetCurrentModuleDirectory();
|
||
wprintf(L"%s\r\n", theme_dir);
|
||
#if 1
|
||
// Debug 模式下使用本地文件夹作为资源
|
||
// 默认皮肤使用 resources\\themes\\default
|
||
// 默认语言使用 resources\\lang\\zh_CN
|
||
// 如需修改请指定 Startup 最后两个参数
|
||
ui::GlobalManager::Startup(theme_dir + L"resources\\", ui::CreateControlCallback(), false);
|
||
#else
|
||
// Release 模式下使用资源中的压缩包作为资源
|
||
// 资源被导入到资源列表分类为 THEME,资源名称为 IDR_THEME
|
||
// 如果资源使用的是本地的 zip 文件而非资源中的 zip 压缩包
|
||
// 可以使用 OpenResZip 另一个重载函数打开本地的资源压缩包
|
||
ui::GlobalManager::OpenResZip(MAKEINTRESOURCE(IDR_THEME2), L"THEME", "");
|
||
//ui::GlobalManager::OpenResZip(L"resources.zip", "");
|
||
ui::GlobalManager::Startup(L"resources\\", ui::CreateControlCallback(), false);
|
||
#endif
|
||
|
||
auto dpiManager = ui::DpiManager::GetInstance();
|
||
// 创建一个默认带有阴影的居中窗口
|
||
BasicForm* window = new BasicForm();
|
||
window->Create(NULL, BasicForm::kClassName.c_str(), WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX & WS_SIZEBOX, 0);
|
||
window->CenterWindow();
|
||
window->ShowWindow();
|
||
}
|
||
|
||
void MainThread::Cleanup()
|
||
{
|
||
ui::GlobalManager::Shutdown();
|
||
SetThreadWasQuitProperly(true);
|
||
nbase::ThreadManager::UnregisterThread();
|
||
} |