我按照本网站http://wiki.videolan.org/GenerateLibFromDll上的说明从 dll 生成 lib 文件。def 文件创建得很好,我已经按照建议对其进行了编辑,但是当我尝试生成 lib 文件时,我收到了无效或损坏文件的 LNK1107 错误。任何帮助都将受到欢迎。
问候
我按照本网站http://wiki.videolan.org/GenerateLibFromDll上的说明从 dll 生成 lib 文件。def 文件创建得很好,我已经按照建议对其进行了编辑,但是当我尝试生成 lib 文件时,我收到了无效或损坏文件的 LNK1107 错误。任何帮助都将受到欢迎。
问候
尝试另一种方法:通过 GetProcAddress 获取指针从 dll 调用函数;
示例: C++ 调用 dll
更新:
VLC 媒体播放器下载为 7zip 版本;
我选择使用 GetProcAddress 的方式:
#include <windows.h>
#include <iostream>
int main()
{
//VLC_PUBLIC_API const char * libvlc_get_version(void);
//Set directory path with libvlccore.dll and libvlc.dll
SetCurrentDirectory("C:/Program Files/VideoLAN/VLC");
HINSTANCE hGetProcIDDLL = LoadLibrary("libvlc.dll");
FARPROC lpfnGetProcessID = GetProcAddress(HMODULE(hGetProcIDDLL),"libvlc_get_version");
if(lpfnGetProcessID == 0)
{
std::cout << "GetProcAddress failed";
return 1;
}
typedef const char * (__stdcall * pICFUNC)(void);
pICFUNC MyFunction = pICFUNC(lpfnGetProcessID);
std::cout << MyFunction() << std::endl;
//output: 1.1.4 The Luggage
return 0;
}
它对我来说很好,但是您必须将字符集从默认 Unicode 更改为多字节:项目 -> 属性 -> 常规 -> 字符集;
试试看!还有祝你好运!;)
更新 2:
我得到了 lib,这里是来自 cmd 的跟踪:
Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp.
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>vcvars32.bat
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>"C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat" 设置使用 Microsoft Visual Studio 2008 x86 工具的环境。
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>dumpbin.exe /exports "D:\My Downloads\VLC\vlc-1.1.4-win32\vlc-1.1.4\libvlc.dll"
“C:\Documents and Settings\Eugene\My Documents\Visual Studio 2008\Projects\VLCApp\VLCApp\libvlc.def”
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>lib /def:"C:\Documents and Settings\Eugene\My Documents\Visual Studio 2008\Projects\VLCApp\VLCApp\libvlc.def " /out: "C:\Documents and Settings\Eugene\My Documents\Visual Studio 2008\Project s\VLCApp\VLCApp\libvlc.lib" /machine:x86 Microsoft (R) Library Manager Version 9.00.30729.01 版权所有 (C) Microsoft Corporation。版权所有。
创建库 C:\Documents and Settings\Eugene\My Documents\Visual Studio 2008\Projects\VLCApp\VLCApp\libvlc.lib 和对象 C:\Documents and Settings\Euge ne\My Documents\Visual Studio 2008\Projects\VLCApp\ VLCApp\libvlc.exp
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>