λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ³΄μ•ˆ/μ•…μ„±μ½”λ“œ

Visual Studio 2019 cpp -> dll μƒμ„±ν•˜λŠ” 방법

by - 였트 - 2021. 9. 19.

cpp μ»΄νŒŒμΌν•΄μ„œ dll μƒμ„±ν•˜λŠ” 방법

 

λ¦¬λ²„μŠ€ μ—”μ§€λ‹ˆμ–΄λ§ κ΅μž¬μ—μ„œ μ œκ³΅ν•˜λŠ” cpp을 μ»΄νŒŒμΌν•΄μ„œ dll을 생성해야 ν–ˆλŠ”λ°,

μ΄λ•Œ μ„€λͺ… 없이 λ°”λ‘œ λΉŒλ“œν•˜λ©΄ λœλ‹€ν•΄μ„œ ν–ˆλ”λ‹ˆ μ•ˆλ˜μ„œ 이틀 λΆ€μ—¬μž‘λ‹€κ°€ 겨우 μ„±κ³΅ν•΄μ„œ μ“°λŠ” κΈ€μž…λ‹ˆλ‹€πŸ˜‚

 

일단 <BasicDllNO> λ₯Ό λŒ€μƒμœΌλ‘œ μ„€λͺ…ν•˜λ©΄

ν”„λ‘œμ νŠΈ 내에 3가지 파일이 μžˆλŠ”λ° 각각 ν™•μž₯μžκ°€ vcxproj, vcxproj.user, cppκ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€

 

μ—¬κΈ°μ„œ vcsproj만 μ΄μš©ν•˜λ©΄ λ©λ‹ˆλ‹€

(이 문제λ₯Ό ν‘ΈλŠ” κ³Όμ •μ—μ„œ λ‹€λ₯Έ νŒ€μ›λΆ„μ˜ 도움을 λ°›μ•˜μŠ΅λ‹ˆλ‹€)

 

ν”„λ‘œμ νŠΈ μƒμ„±ν•œ 후에 μ½”λ“œ 볡뢙(x)

vcsproj 파일둜 λ°”λ‘œ μ‹€ν–‰(o)

 

μ—¬κΈ°μ„œ 더블클릭을 λˆ„λ₯΄λ©΄ λ°”λ‘œ μ΄λ ‡κ²Œ ν•΄λ‹Ή cpp μ½”λ“œκ°€ μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€

dll은 0.bin\x64\Debug\BasicDllNO.dllμ—μ„œ μƒμ„±λ©λ‹ˆλ‹€

아무 생각 없이 λΉŒλ“œν•˜λ©΄ 'μ˜¬λ°”λ₯Έ win32 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹™λ‹ˆλ‹€' λΌλŠ” 였λ₯˜κ°€ 뜨게 λ˜λŠ”λ°

μ—¬κΈ°μ„œ ꡬ글에 'vs2019 μ˜¬λ°”λ₯Έ win32 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μ•„λ‹™λ‹ˆλ‹€'을 κ²€μƒ‰ν•΄λ³΄λ‹ˆ

ν”Œλž«νΌ 도ꡬ 집합을 ν™•μΈν•˜λ©΄ λœλ‹€λŠ” 글을 ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€


κ²°λ‘ !

ν”Œλž«νΌ 도ꡬ 집합 : Windows XP (v141_xp) ν™˜κ²½μœΌλ‘œ λ³€κ²½

(연도 상관 없이 XP ν™˜κ²½μ΄λ©΄ λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€)

ꡬ성 ν”Œλž«νΌ : Debug Win32

ꡬ성 ν˜•μ‹ : 동적 라이브러리(.dll)

-> μ˜¬λ°”λ₯Έ win32 μ‘μš© ν”„λ‘œκ·Έλž¨μœΌλ‘œ λ°”κΏ”μ£ΌλŠ” λ°©λ²•μž…λ‹ˆλ‹€

 

괜히 μƒˆ ν”„λ‘œμ νŠΈμ— μ½”λ“œ μ§‘μ–΄λ„£μ–΄μ„œ 백번 해도 μ•ˆλ˜λŠ” ν™˜κ²½μ—μ„œ μ‹œλ„ν•˜λŠ” 것보닀

vcsproj 파일둜 λ°”λ‘œ λ“€μ–΄κ°€μ„œ μ†μ„±λ§Œ 쑰금 μˆ˜μ •ν•˜κ³  λ°”λ‘œ μ‹€ν–‰ν•˜λ©΄ λœλ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€

 

 

* Dumpbin

Dumpbin에 λŒ€ν•΄μ„œλ„ μ •λ¦¬ν•˜λ € ν–ˆμœΌλ‚˜, 더 잘 μ •λ¦¬λœ 링크가 μžˆμ–΄ μ²¨λΆ€ν•©λ‹ˆλ‹€

https://hong91.tistory.com/30

 

PE 뢄석을 ν•  λ•Œ λ„μ›€λ˜λŠ” μœ ν‹Έλ¦¬ν‹° (1) - DumpBin

1. DumpBin.exe Microsoft COFF Binary File Dumper(DumpBin.exe)λŠ” COFF(곡용 개체 파일 ν˜•μ‹) 이진 νŒŒμΌμ— λŒ€ν•œ 정보λ₯Ό ν‘œμ‹œ ν•©λ‹ˆλ‹€. DumpBin.exeλ₯Ό μ΄μš©ν•˜μ—¬ COFF 개체 파일, COFF 개체의 ν‘œμ€€ 라이브러리, μ‹€..

hong91.tistory.com

μ‹€μ œ μ‹€μŠ΅ 사진(우클릭 ν›„ μƒˆ νƒ­μ—μ„œ 이미지 μ—΄κΈ° λˆ„λ₯΄λ©΄ 잘 λ³΄μž…λ‹ˆλ‹€!)