Я пытаюсь создать приложение в Visual Studio, которое будет иметь доступ к уже существующему файлу .dll. Мне нужно приложение для вызова подпрограмм. У меня также есть файл заголовка, который уже существует.
Я искал в Интернете и обнаружил, что мне нужно создать файл .lib. Глядя на похожие вопросы здесь, я нашел ссылку: http://support.microsoft.com/kb/131313 Однако я не могу следовать указаниям.
Информация в ссылке говорит о создании файла DEF (я читал в другом месте, что он должен быть скомпилирован как DLL с тем же именем, но не уверен, что это за имя, такое же имя, как у файла .dll?) . Но я не понимаю первое направление - «Использовать DUMPBIN / EXPORTS». Затем мне нужно «заглушить» функции, а затем что-то делать с файлами .OBJ (я не знаю, что это за файлы).
Есть ли какие-либо пошаговые инструкции, подобные приведенной выше ссылке, по которым легко следовать?
Р • ще РѕРґРёРЅ вариант СЃ помощью powershell, dumpbin Рё lib.
Р’Р · СЏС‚ Рѕ РѕС‚ СЃСЋРґР Рё РґРѕСЂР°Р±РѕС °‚ ано: http://xbb.uz/dev/Gjenjeracija-.lib-iz-DLL-s-pomoshhju-Visual-Studio
$pattern = "\s+([A-Z0-9]+)\s+[A-Z0-9]+\s+[A-Z0-9]{8} (.*)";
$platform = "x86";
if($args.length)
{
if($args[1])
{
$platform = $args[1];
}
$dll = [System.IO.Path]::GetFilename($args[0]);
$def = [System.IO.Path]::ChangeExtension($dll, "def");
$lib = [System.IO.Path]::ChangeExtension($dll, "lib");
Write-Host ("Generating " + $def + " file…");
$content="EXPORTS`n";
&"dumpbin" "/exports" $args[0] | select-string $pattern | %{$null = Р • ще РѕРґРёРЅ вариант СЃ помощью powershell, dumpbin Рё lib.
Р’Р · СЏС‚ Рѕ РѕС‚ СЃСЋРґР Рё РґРѕСЂР°Р±РѕС °‚ ано: http://xbb.uz/dev/Gjenjeracija-.lib-iz-DLL-s-pomoshhju-Visual-Studio
[110].Line -match $pattern; $str='{0,9}{1,-30} @{2}' -f " ", $matches[2], $matches[1]; $content+=($str+"`n"); }
$content | Out-File $def -Encoding Ascii;
Write-Host ("Generating " + $lib + " file…");
&"lib" ("/def:" + $def) ("/out:" + $lib) ("/machine:" + $platform) | out-null;
Write-Host ("");
}
else
{
Write-Host "Start powershell from VisualStudio commandline then use this script.";
Write-Host "Script takes two parameters: dll filename and platform.";
Write-Host "example: .\GenerateLibFromDll.ps1 hello.dll `"x64`"";
Write-Host "or to process all dlls in the dir: gci *.dll | foreach {&`".\GenerateLibFromDll.ps1`" Р • ще РѕРґРёРЅ вариант СЃ помощью powershell, dumpbin Рё lib.
Р’Р · СЏС‚ Рѕ РѕС‚ СЃСЋРґР Рё РґРѕСЂР°Р±РѕС °‚ ано: http://xbb.uz/dev/Gjenjeracija-.lib-iz-DLL-s-pomoshhju-Visual-Studio
[110].Name `"x64`"}";;
}