mirror of
https://github.com/HIllya51/LunaHook.git
synced 2024-11-30 17:15:38 +08:00
fix
1
This commit is contained in:
parent
ebe0048bb2
commit
fea96595c5
@ -25,9 +25,10 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_FINAL_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/builds/${CMAKE_BUILD_TYPE}_x${bitappendix})
|
set(CMAKE_FINAL_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/builds/${CMAKE_BUILD_TYPE}_x${bitappendix})
|
||||||
|
set(binary_out_putpath ${CMAKE_SOURCE_DIR}/builds/output)
|
||||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY $<1:${CMAKE_FINAL_OUTPUT_DIRECTORY}>)
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY $<1:${CMAKE_FINAL_OUTPUT_DIRECTORY}>)
|
||||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY $<1:${CMAKE_FINAL_OUTPUT_DIRECTORY}>)
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY $<1:${binary_out_putpath}>)
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY $<1:${CMAKE_FINAL_OUTPUT_DIRECTORY}>)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY $<1:${binary_out_putpath}>)
|
||||||
|
|
||||||
include_directories(.)
|
include_directories(.)
|
||||||
include(libs/libs.cmake)
|
include(libs/libs.cmake)
|
||||||
|
@ -53,3 +53,4 @@
|
|||||||
#define MenuRemoveHook L"RemoveHook"
|
#define MenuRemoveHook L"RemoveHook"
|
||||||
#define MenuDetachProcess L"DetachProcess"
|
#define MenuDetachProcess L"DetachProcess"
|
||||||
#define DefaultFont L"Arial"
|
#define DefaultFont L"Arial"
|
||||||
|
#define InVaildPlugin L"InVaild Plugin"
|
@ -1,5 +1,6 @@
|
|||||||
add_executable(LunaHost WIN32 controls.cpp main.cpp processlistwindow.cpp LunaHost.cpp window.cpp luna.rc pluginmanager.cpp pluginexample.cpp)
|
add_executable(LunaHost WIN32 controls.cpp main.cpp processlistwindow.cpp LunaHost.cpp window.cpp luna.rc pluginmanager.cpp Plugin/pluginexample.cpp)
|
||||||
target_precompile_headers(LunaHost REUSE_FROM pch)
|
target_precompile_headers(LunaHost REUSE_FROM pch)
|
||||||
set_target_properties(LunaHost PROPERTIES OUTPUT_NAME "LunaHost${bitappendix}")
|
set_target_properties(LunaHost PROPERTIES OUTPUT_NAME "LunaHost${bitappendix}")
|
||||||
|
|
||||||
target_link_libraries(LunaHost pch host ${YY_Thunks_for_WinXP})
|
target_link_libraries(LunaHost pch host ${YY_Thunks_for_WinXP})
|
||||||
|
add_subdirectory(Plugin)
|
@ -41,7 +41,7 @@ std::optional<std::wstring>SelectFile(HWND hwnd){
|
|||||||
ZeroMemory(&ofn, sizeof(ofn));
|
ZeroMemory(&ofn, sizeof(ofn));
|
||||||
ofn.lStructSize = sizeof(ofn);
|
ofn.lStructSize = sizeof(ofn);
|
||||||
ofn.hwndOwner = hwnd;
|
ofn.hwndOwner = hwnd;
|
||||||
ofn.lpstrFilter = L"Plugin Files (.dll)\0*.dll\0";
|
ofn.lpstrFilter = L"Plugin Files\0*.dll;*.xdll\0";
|
||||||
ofn.lpstrFile = szFileName;
|
ofn.lpstrFile = szFileName;
|
||||||
ofn.nMaxFile = sizeof(szFileName);
|
ofn.nMaxFile = sizeof(szFileName);
|
||||||
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
|
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#include"processlistwindow.h"
|
#include"processlistwindow.h"
|
||||||
#include"textthread.h"
|
#include"textthread.h"
|
||||||
#include"pluginmanager.h"
|
#include"pluginmanager.h"
|
||||||
#include"plugin.h"
|
#include"Plugin/plugindef.h"
|
||||||
class LunaHost:public mainwindow{
|
class LunaHost:public mainwindow{
|
||||||
|
|
||||||
int64_t currentselect=0;
|
int64_t currentselect=0;
|
||||||
|
4
LunaHost/GUI/Plugin/CMakeLists.txt
Normal file
4
LunaHost/GUI/Plugin/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
add_library(ToClipboard MODULE pluginexample.cpp)
|
||||||
|
target_precompile_headers(ToClipboard REUSE_FROM pch)
|
||||||
|
set_target_properties(ToClipboard PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/plugin${bitappendix}")
|
@ -1,4 +1,4 @@
|
|||||||
#include"plugin.h"
|
#include"plugindef.h"
|
||||||
|
|
||||||
bool ProcessSentence(std::wstring& sentence, SentenceInfo sentenceInfo);
|
bool ProcessSentence(std::wstring& sentence, SentenceInfo sentenceInfo);
|
||||||
|
|
@ -1,7 +1,8 @@
|
|||||||
#include"pluginmanager.h"
|
#include"pluginmanager.h"
|
||||||
#include<filesystem>
|
#include<filesystem>
|
||||||
#include"plugin.h"
|
#include"Plugin/plugindef.h"
|
||||||
#include<fstream>
|
#include<fstream>
|
||||||
|
#include"Lang/Lang.h"
|
||||||
std::vector<char> readfile(const wchar_t* fname) {
|
std::vector<char> readfile(const wchar_t* fname) {
|
||||||
FILE* f;
|
FILE* f;
|
||||||
_wfopen_s(&f, fname, L"rb");
|
_wfopen_s(&f, fname, L"rb");
|
||||||
@ -60,13 +61,14 @@ bool pluginmanager::dispatch(const InfoForExtension* sentenceInfo, std::wstring&
|
|||||||
HeapFree(GetProcessHeap(), 0, sentenceBuffer);
|
HeapFree(GetProcessHeap(), 0, sentenceBuffer);
|
||||||
return !sentence.empty();
|
return !sentence.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<std::pair<std::wstring,LPVOID>> pluginmanager::checkisvalidplugin(const std::wstring& pl){
|
std::optional<std::pair<std::wstring,LPVOID>> pluginmanager::checkisvalidplugin(const std::wstring& pl){
|
||||||
auto path=std::filesystem::path(pl);
|
auto path=std::filesystem::path(pl);
|
||||||
if (!std::filesystem::exists(path))return{};
|
if (!std::filesystem::exists(path))return{};
|
||||||
if (!std::filesystem::is_regular_file(path))return{};
|
if (!std::filesystem::is_regular_file(path))return{};
|
||||||
auto appendix=path.extension().wstring();
|
auto appendix=path.extension().wstring();
|
||||||
stolower(appendix);
|
stolower(appendix);
|
||||||
if(appendix!=std::wstring(L".dll"))return {};
|
if((appendix!=std::wstring(L".dll"))&&(appendix!=std::wstring(L".xdll")))return {};
|
||||||
auto dll=LoadLibraryW(pl.c_str());
|
auto dll=LoadLibraryW(pl.c_str());
|
||||||
if(!dll)return {};
|
if(!dll)return {};
|
||||||
auto OnNewSentence=GetProcAddress(dll,"OnNewSentence");
|
auto OnNewSentence=GetProcAddress(dll,"OnNewSentence");
|
||||||
@ -94,6 +96,7 @@ bool pluginmanager::addplugin(const std::wstring& p){
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
MessageBoxW(0,InVaildPlugin,L"Error",0);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
#include"plugin.h"
|
#include"Plugin/plugindef.h"
|
||||||
#include"textthread.h"
|
#include"textthread.h"
|
||||||
class pluginmanager{
|
class pluginmanager{
|
||||||
std::vector<std::pair<std::wstring,LPVOID>>OnNewSentenceS;
|
std::vector<std::pair<std::wstring,LPVOID>>OnNewSentenceS;
|
||||||
|
Loading…
Reference in New Issue
Block a user