diff options
author | Valentin Popov <valentin@popov.link> | 2023-05-04 23:22:27 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2023-05-04 23:22:27 +0300 |
commit | 08cff8163cd9c1cf23d27cb0a541a6e733733b65 (patch) | |
tree | 6e7fc0981f84df0458675dfed77b86f50d22ec25 /content | |
parent | 16514035aea1f814d95b3fbcac1987c3f96780a9 (diff) | |
download | popov.link-08cff8163cd9c1cf23d27cb0a541a6e733733b65.tar.xz popov.link-08cff8163cd9c1cf23d27cb0a541a6e733733b65.zip |
Added archives post
Diffstat (limited to 'content')
-rw-r--r-- | content/blog/create-lib-file-from-dll.md | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/content/blog/create-lib-file-from-dll.md b/content/blog/create-lib-file-from-dll.md new file mode 100644 index 0000000..791d9bd --- /dev/null +++ b/content/blog/create-lib-file-from-dll.md @@ -0,0 +1,57 @@ ++++ +title = "Create \".lib\" file from \".dll\"" +date = 2023-05-04 ++++ + +> This's a copy of an existing post. +> The original article [is here](https://web.archive.org/web/20160228170508/https://adrianhenke.wordpress.com/2008/12/05/create-lib-file-from-dll/). + +When working with 3rd party win dll's you sometimes miss the according to the ".lib" file required to compile against it. +There is an [MS KB](https://jeffpar.github.io/kbarchive/kb/131/Q131313/) article showing how to generate a ".lib" file from a ".dll" however the required steps are not described detailed enough I think. +So here is my quick guide. + +Open the Visual Studio Command Prompt, you find its shortcut in _"Start -> Programs -> Microsoft Visual Studio Tools"_. +Now run the "dumpbin" command to get a list of all exported functions of your dll: + +```shell +dumpbin /exports C:\\yourpath\\yourlib.dll +``` + +This will print quite a bit of text to the console. +However, we are only interested in the functions: + +``` +ordinal hint RVA name + +1 0 00017770 jcopy_block_row +2 1 00017710 jcopy_sample_rows +3 2 000176C0 jdiv_round_up +4 3 000156D0 jinit_1pass_quantizer +5 4 00016D90 jinit_2pass_quantizer +6 5 00005750 jinit_c_coef_controller +...etc +``` + +Now copy all those function names (only the names!) and paste them into a new text file. +Name the next file "yourlib.def" and put the line "EXPORTS" at its top. +My "yourlib.def" file looks like this: + +``` +EXPORTS +jcopy_block_row +jcopy_sample_rows +jdiv_round_up +jinit_1pass_quantizer +jinit_2pass_quantizer +jinit_c_coef_controller +... +``` + +Now from that definition file, we can finally create the ".lib" file. +We use the "lib" tool for this, so run this command in your Visual Studio Command Prompt: + +```shell +lib /def:C:\\mypath\\mylib.def /OUT:C:\\mypath\\mylib.lib +``` + +That's it, happy coding 🙂
\ No newline at end of file |