forked from Public-Mirror/Textractor
bugfix
This commit is contained in:
parent
ff2fc74c5a
commit
cf2a658ac7
@ -3,10 +3,11 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
|
||||||
std::map<int, ExtensionFunction> extensions;
|
std::map<int, ExtensionFunction> extensions;
|
||||||
|
int processing;
|
||||||
|
|
||||||
std::map<int, QString> LoadExtensions()
|
std::map<int, QString> LoadExtensions()
|
||||||
{
|
{
|
||||||
extensions = std::map<int, ExtensionFunction>();
|
std::map<int, ExtensionFunction> newExtensions;
|
||||||
std::map<int, QString> extensionNames;
|
std::map<int, QString> extensionNames;
|
||||||
wchar_t path[MAX_PATH] = {};
|
wchar_t path[MAX_PATH] = {};
|
||||||
(QDir::currentPath() + "/*_nexthooker_extension.dll").toWCharArray(path);
|
(QDir::currentPath() + "/*_nexthooker_extension.dll").toWCharArray(path);
|
||||||
@ -17,18 +18,24 @@ std::map<int, QString> LoadExtensions()
|
|||||||
GetProcAddress(LoadLibraryW(fileData.cFileName), "OnNewSentence")
|
GetProcAddress(LoadLibraryW(fileData.cFileName), "OnNewSentence")
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
extensions[std::wcstol(fileData.cFileName, nullptr, 10)] = (ExtensionFunction)GetProcAddress(GetModuleHandleW(fileData.cFileName), "OnNewSentence");
|
newExtensions[std::wcstol(fileData.cFileName, nullptr, 10)] = (ExtensionFunction)GetProcAddress(GetModuleHandleW(fileData.cFileName), "OnNewSentence");
|
||||||
QString name = QString::fromWCharArray(fileData.cFileName);
|
QString name = QString::fromWCharArray(fileData.cFileName);
|
||||||
name.chop(sizeof("_nexthooker_extension.dll") - 1);
|
name.chop(sizeof("_nexthooker_extension.dll") - 1);
|
||||||
name.remove(0, name.split("_")[0].length() + 1);
|
name.remove(0, name.split("_")[0].length() + 1);
|
||||||
extensionNames[std::wcstol(fileData.cFileName, nullptr, 10)] = name;
|
extensionNames[std::wcstol(fileData.cFileName, nullptr, 10)] = name;
|
||||||
}
|
}
|
||||||
while (FindNextFileW(file, &fileData) != 0);
|
while (FindNextFileW(file, &fileData) != 0);
|
||||||
|
while (processing) Sleep(10);
|
||||||
|
processing = -1;
|
||||||
|
extensions = newExtensions;
|
||||||
|
processing = 0;
|
||||||
return extensionNames;
|
return extensionNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::wstring DispatchSentenceToExtensions(std::wstring sentence, std::unordered_map<std::string, int> miscInfo)
|
std::wstring DispatchSentenceToExtensions(std::wstring sentence, std::unordered_map<std::string, int> miscInfo)
|
||||||
{
|
{
|
||||||
|
while (processing < 0) Sleep(10);
|
||||||
|
processing++;
|
||||||
wchar_t* sentenceBuffer = new wchar_t[sentence.size() + 1];
|
wchar_t* sentenceBuffer = new wchar_t[sentence.size() + 1];
|
||||||
wcscpy(sentenceBuffer, sentence.c_str());
|
wcscpy(sentenceBuffer, sentence.c_str());
|
||||||
InfoForExtension* miscInfoLinkedList = new InfoForExtension;
|
InfoForExtension* miscInfoLinkedList = new InfoForExtension;
|
||||||
@ -56,5 +63,6 @@ std::wstring DispatchSentenceToExtensions(std::wstring sentence, std::unordered_
|
|||||||
}
|
}
|
||||||
std::wstring newSentence = std::wstring(sentenceBuffer);
|
std::wstring newSentence = std::wstring(sentenceBuffer);
|
||||||
delete[] sentenceBuffer;
|
delete[] sentenceBuffer;
|
||||||
|
processing--;
|
||||||
return newSentence;
|
return newSentence;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user