【问题标题】:C++ LoadLibrary Not workingC++ LoadLibrary 不工作
【发布时间】:2013-07-22 15:13:50
【问题描述】:
if (LoadLibrary(L"d:\\cwebpage.dll"))
       MessageBox(0, L"Loaded", L"ERROR", MB_OK);
else MessageBox(0, L"Error", L"ERROR", MB_OK);

没用,我试过了

if (LoadLibrary(_T("d:\\cwebpage.dll"))) //#include<tchar.h>  

if (LoadLibraryA("d:\\cwebpage.dll"))

if (LoadLibrary("d:\\cwebpage.dll")) //#undef UNICODE

什么都没有

【问题讨论】:

  • 如果函数失败,返回值为NULL。要获取扩展错误信息,请调用 GetLastError。试试看,告诉我们它显示了什么
  • 我是win32新手,不知道是否正确 MessageBox(0, (LPCTSTR)GetLastError(), L"ERROR", MB_OK);什么也没显示。只是空提示框
  • 其实没有错误,总是执行Else部分。
  • 错误 C3861: 'sprintf_s': 未找到标识符

标签: c++ string dll loadlibrary tchar


【解决方案1】:

首先,确保D:\cwebpage.dll 存在。正如 Mike Vine 之前提到的,如果函数失败,则返回值为 NULL。要获取更多错误信息,请致电GetLastError

if (LoadLibrary(L"d:\\cwebpage.dll"))
{
       DWORD nErrCode = GetLastError();
       MessageBox(0, L"Loaded", L"ERROR", MB_OK);
}
else MessageBox(0, L"Error", L"ERROR", MB_OK);

nErrCode 的详细信息在页面“http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381(v=vs.85).aspx”中定义。

函数sprintf_sstdio.h中定义,在你引用sprintf_s的文件中,添加行#include &lt;stdio.h&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2017-10-13
    相关资源
    最近更新 更多