Код (Text): @echo off cls set masm64_path=...<-- ваш путь к dumpbin.exe и link.ехе @echo %masm64_path% set FileName=hnetcfg if exist %FileName%.inc del %FileName%.inc if exist %FileName%.def del %FileName%.def %masm64_path%bin\dumpbin.exe /EXPORTS %windir%\System32\%FileName%.dll /OUT:%FileName%.txt ::%masm64_path%bin\dumpbin.exe /EXPORTS %FileName%.dll /OUT:%FileName%.txt @echo EXPORTS >> %FileName%.def for /f "skip=16 tokens=1-4" %%a in (%FileName%.txt) do ( if "%%a"=="Summary" goto :exit if "%%d"=="" ( @echo extern __imp_%FileName%_ordinal%%a:qword >> %FileName%.inc @echo %FileName%_ordinal%%a TEXTEQU ^<__imp_%FileName%_ordinal%%a^> >> %FileName%.inc @echo %FileName%_ordinal%%a=ordinal%%a @%%a NONAME >> %FileName%.def ) else ( if not "%%d"=="(forwarded" ( @echo extern __imp_%%d:qword >> %FileName%.inc @echo %%d TEXTEQU ^<__imp_%%d^> >> %FileName%.inc @echo %%d=__imp_%%d >> %FileName%.def ))) :exit %masm64_path%bin\link -lib /DEF:%FileName%.def /OUT:%FileName%.lib /MACHINE:X64 <-- для 32-разрядной заменить на MACHINE:X86 без проблем собрались hnetcfg.inc, hnetcfg.def, hnetcfg.ехр, и hnetcfg.lib
да это МАСМ64, но для переделки для МАСМ32 достаточно поменять /MACHINE:X64 на /MACHINE:X86, ну или на основе моего бат-файла создать свой...
что я могу сказать? Вы берете реальную dll, обрабатываете ее, получаете доступ к тем функциям, которые из нее экспортируются. INetSharingConfiguration::AddPortMapping method INetSharingConfiguration::EnableSharing method INetSharingConfiguration::EnableInternetFirewall method INetSharingConfiguration:isableSharing method INetSharingConfiguration:isableInternetFirewall method INetSharingConfiguration::get_EnumPortMappings method INetSharingConfiguration::get_SharingConnectionType method и т.д.
лучше под отладчиком запустить софтину, в которой используется AddPortMapping, тогда будет понятно какая функция из hnetcfg.dll используется