[host] simplify dll loading

This commit is contained in:
jmossman 2017-12-15 11:41:34 -06:00 committed by Geoffrey McRae
parent 2bb8b0227c
commit b89a8fee04
2 changed files with 3 additions and 39 deletions

View file

@ -61,11 +61,10 @@ bool NvFBC::Initialize(CaptureOptions * options)
if (_strcmpi(*it, "nowait") == 0) { m_optNoWait = true ; continue; } if (_strcmpi(*it, "nowait") == 0) { m_optNoWait = true ; continue; }
} }
std::string nvfbc = Util::GetSystemRoot() + "\\" + NVFBC_LIBRARY_NAME; m_hDLL = LoadLibraryA(NVFBC_LIBRARY_NAME);
m_hDLL = LoadLibraryA(nvfbc.c_str());
if (!m_hDLL) if (!m_hDLL)
{ {
DEBUG_ERROR("Failed to load the NvFBC library: %d - %s", GetLastError(), nvfbc.c_str()); DEBUG_ERROR("Failed to load the NvFBC library: %d - %s", GetLastError(), NVFBC_LIBRARY_NAME);
return false; return false;
} }
@ -76,7 +75,7 @@ bool NvFBC::Initialize(CaptureOptions * options)
if (!m_fnCreateEx || !m_fnSetGlobalFlags || !m_fnGetStatusEx || !m_fnEnable) if (!m_fnCreateEx || !m_fnSetGlobalFlags || !m_fnGetStatusEx || !m_fnEnable)
{ {
DEBUG_ERROR("Unable to locate required entry points in %s", nvfbc.c_str()); DEBUG_ERROR("Unable to locate required entry points in %s", NVFBC_LIBRARY_NAME);
DeInitialize(); DeInitialize();
return false; return false;
} }

View file

@ -23,45 +23,10 @@ Place, Suite 330, Boston, MA 02111-1307 USA
#include <inttypes.h> #include <inttypes.h>
#include <tmmintrin.h> #include <tmmintrin.h>
#include "common\debug.h"
class Util class Util
{ {
public: public:
static std::string GetSystemRoot()
{
std::string defaultPath;
size_t pathSize;
char *libPath;
if (_dupenv_s(&libPath, &pathSize, "SystemRoot") != 0)
{
DEBUG_ERROR("Unable to get the SystemRoot environment variable");
return defaultPath;
}
if (!pathSize)
{
DEBUG_ERROR("The SystemRoot environment variable is not set");
return defaultPath;
}
#ifdef _WIN64
defaultPath = std::string(libPath) + "\\System32";
#else
if (IsWow64())
{
defaultPath = std::string(libPath) + "\\Syswow64";
}
else
{
defaultPath = std::string(libPath) + "\\System32";
}
#endif
return defaultPath;
}
static inline void BGRAtoRGB(uint8_t * orig, size_t imagesize, uint8_t * dest) static inline void BGRAtoRGB(uint8_t * orig, size_t imagesize, uint8_t * dest)
{ {
assert((uintptr_t)orig % 16 == 0); assert((uintptr_t)orig % 16 == 0);