このサイトhttp://wiki.videolan.org/GenerateLibFromDllの指示に従って、dllからlibファイルを生成しました。defファイルは正常に作成され、提案どおりに編集しましたが、libファイルを生成しようとすると、無効または破損したファイルに対してLNK1107エラーが発生します。どんな助けでも大歓迎です。
よろしく
このサイトhttp://wiki.videolan.org/GenerateLibFromDllの指示に従って、dllからlibファイルを生成しました。defファイルは正常に作成され、提案どおりに編集しましたが、libファイルを生成しようとすると、無効または破損したファイルに対してLNK1107エラーが発生します。どんな助けでも大歓迎です。
よろしく
別の方法を試してください。GetProcAddressでポインタを取得してdllから関数を呼び出します。
例: dllを呼び出すC ++
アップデート:
7zipバージョンとしてダウンロードされたVLCメディアプレーヤー。
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)Copyright 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 Studio2008x86ツールを使用するための環境を設定します。
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 S ettings \ 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)LibraryManagerバージョン9.00.30729.01Copyright(C)MicrosoftCorporation。全著作権所有。
ライブラリ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>