我按照此网站http://wiki.videolan.org/GenerateLibFromDll上的说明从dll生成lib文件。 def文件创建正常,我按照建议编辑了它,但是当我尝试生成lib文件时,我收到LNK1107错误的无效或损坏的文件。任何帮助都是最受欢迎的。
此致
答案 0 :(得分:2)
尝试另一种方法:通过使用GetProcAddress获取指针来调用dll函数;
实施例: C++ calling a 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更改为多字节: 项目 - &gt;属性 - &gt;一般 - &gt;字符集;
试试吧!祝你好运!;)
更新2:
我得到了lib,这里是cmd的跟踪:
Microsoft Windows XP [版本 5.1.2600](C)版权所有1985-2001 Microsoft Corp.
C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ bin&gt; vcvars32.bat
C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ bin&gt;“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&gt; dumpbin.exe / exports “d:\我的 下载\ VLC \ VLC-1.1.4-的win32 \ VLC-1.1.4 \ libvlc.dll“
“C:\ Documents and Settings \ Eugene \ My Documents \ Visual Studio 2008 \项目\ VLCApp \ VLCApp \ libvlc.def“
C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ bin&gt; lib / def:“C:\ Documents and S. ettings \ Eugene \ My Documents \ Visual 工作室 2008 \项目\ VLCApp \ VLCApp \ libvlc.def “/ out:”C:\ Documents and 设置\ Eugene \ My Documents \ Visual Studio 2008 \ Project 小号\ VLCApp \ VLCApp \ libvlc.lib” / machine:x86 Microsoft(R)Library 经理版本9.00.30729.01 版权所有(C)Microsoft Corporation。 保留所有权利。
创建库C:\ Documents and 设置\ Eugene \ My Documents \ Visual 工作室 2008 \项目\ VLCApp \ VLCApp \ libvlc.lib 和对象C:\ Documents and 设置\ Euge ne \ My Documents \ Visual 工作室 2008 \项目\ VLCApp \ VLCApp \ libvlc.exp
C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ bin&gt;