mirror of
https://github.com/chibicitiberiu/rainmeter-studio.git
synced 2024-02-24 04:33:31 +00:00
Added workaround for loading C# plugins. (For some reason, C# x86 plugin with uncanonicalized path is not loaded correctly in Win7 32bit/WOW64.)
http://rainmeter.net/forum/viewtopic.php?f=18&t=239&start=30#p56921 http://rainmeter.net/forum/viewtopic.php?f=18&t=239&start=80#p64237
This commit is contained in:
parent
ec2b19f0dc
commit
4bd8e7db7d
@ -144,7 +144,26 @@ void CMeasurePlugin::ReadConfig(CConfigParser& parser, const WCHAR* section)
|
||||
}
|
||||
pluginName.insert(0, Rainmeter->GetPluginPath());
|
||||
|
||||
m_Plugin = CSystem::RmLoadLibrary(pluginName.c_str(), NULL);
|
||||
// Canonicalize the path (Workaround for C# plugins)
|
||||
{
|
||||
pos = 0;
|
||||
while ((pos = pluginName.find(L"\\\\", pos)) != std::wstring::npos)
|
||||
{
|
||||
pluginName.erase(pos, 1);
|
||||
}
|
||||
|
||||
WCHAR buffer[MAX_PATH];
|
||||
if (PathCanonicalize(buffer, pluginName.c_str()))
|
||||
{
|
||||
pluginName = buffer;
|
||||
}
|
||||
else
|
||||
{
|
||||
LogWithArgs(LOG_WARNING, L"Plugin: Failed to canonicalize plugin path: %s", pluginName.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
m_Plugin = CSystem::RmLoadLibrary(pluginName.c_str());
|
||||
if (m_Plugin == NULL)
|
||||
{
|
||||
// Try to load from Rainmeter's folder
|
||||
@ -154,7 +173,7 @@ void CMeasurePlugin::ReadConfig(CConfigParser& parser, const WCHAR* section)
|
||||
std::wstring pluginName2 = Rainmeter->GetPath();
|
||||
pluginName2.append(pluginName, pos + 1, pluginName.length() - (pos + 1));
|
||||
|
||||
m_Plugin = CSystem::RmLoadLibrary(pluginName2.c_str(), NULL);
|
||||
m_Plugin = CSystem::RmLoadLibrary(pluginName2.c_str());
|
||||
}
|
||||
|
||||
if (m_Plugin == NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user