๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋™์ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ3

pragma comment lib : ๋ฌต์‹œ์ (์•”์‹œ์ ) ๋งํ‚น ์•ž์„œ ์ž‘์„ฑํ–ˆ๋˜ ๊ธ€์„ ๋จผ์ € ์ฐธ๊ณ ํ•˜๊ธธ ๋ฐ”๋ผ๋ฉฐ...(DLL ๋งŒ๋“ค๊ธฐ ๋ฐ ํ˜ธ์ถœํ•˜๊ธฐ ๋”ฐ๋ผํ•˜๊ธฐ : 1. ๋ฌต์‹œ์ (์•”์‹œ์ ) ๋งํ‚น : http://gentlesark.tistory.com/11) ์•ž์˜ ๊ธ€์—์„œ๋Š” '8. lib ํŒŒ์ผ ์—ฐ๊ฒฐ' ๋ถ€๋ถ„์—์„œ ํ”„๋กœ์ ํŠธ ์†์„ฑ์˜ ์ถ”๊ฐ€ ์ข…์†์„ฑ์—์„œ libํŒŒ์ผ์„ ์ž…๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” ์ด ๋ถ€๋ถ„์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ์ „์ฒ˜๋ฆฌ ๋ฌธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค. #pragma comment(lib,"MakeDLLTutorial.lib") ์œ„์™€ ๊ฐ™์€ ๊ตฌ๋ฌธ์€ ์•ž์—์„œ ์†Œ๊ฐœํ–ˆ๋˜ ์ถ”๊ฐ€ ์ข…์†์„ฑ์—์„œ์˜ ์ •์ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งํ‚น์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๋ฌธ์ด๋‹ค.์•ž์˜ Tutorial์—์„œ ์ถ”๊ฐ€์ข…์†์„ฑ์—์„œ ํฌํ•จํ–ˆ๋˜ ๋‚ด์šฉ์„ ์‚ญ์ œํ•˜๊ณ  (๋‹จ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ์„ค์ •์€ ๊ทธ๋Œ€๋กœ ๋‘”๋‹ค)์œ„์˜ ๊ตฌ๋ฌธ์„ ํ—ค๋” ํฌํ•จ ์•„๋ž˜์ชฝ์— ๋ฐ”๋กœ ์ž…๋ ฅํ•˜์—ฌ ๋นŒ๋“œํ•ด๋ณด๋ฉด ํ…Œ์ŠคํŠธ.. 2017. 2. 22.
DLL ๋งŒ๋“ค๊ธฐ ๋ฐ ํ˜ธ์ถœํ•˜๊ธฐ ๋”ฐ๋ผํ•˜๊ธฐ : 2. ๋ช…์‹œ์  ๋งํ‚น 1์žฅ. ๋ฌต์‹œ์ (์•”์‹œ์ ) ๋งํ‚น์— ์ด์–ด์„œ ์ด๋ฒˆ์—” ๋ช…์‹œ์  ๋งํ‚น์— ๋Œ€ํ•œ ๋”ฐ๋ผํ•˜๊ธฐ๋ฅผ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.๋ช…์‹œ์  ๋งํ‚น์„ ์ด์šฉํ•˜๋ฉด ํ•„์š”ํ•  ๋•Œ DLL์—์„œ ํ•จ์ˆ˜๋ฅผ ๋กœ๋“œํ•˜์—ฌ ํŠน์ • ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์— ์‚ฌ์šฉํ•˜๋ ค๋Š” ํ•จ์ˆ˜๋ฅผ๋งตํ•‘์‹œ์ผœ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ฌ์ง€์–ด ํ•˜๋‚˜์˜ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์— ๋ถˆ๋Ÿฌ๋“ค์ผ ํ•จ์ˆ˜๋ฅผ ๋ฐ”๊ฟ”๊ฐ€๋ฉฐ ๋งตํ•‘์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ๋ฐฑ๋ฌธ์ด ๋ถˆ์—ฌ์ผ๊ฒฌ์ด๋ผ ํ–ˆ์œผ๋‹ˆ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๋ณด๋ฉด์„œ ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.์‹œ์ž‘์€ 1์žฅ์—์„œ์˜ MakeDLLTutorial.cppํŒŒ์ผ์˜ '๋ง‰ ์ƒ์„ฑํ•˜์—ฌ ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๋ฒ„์ „'๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘๋œ๋‹ค.http://gentlesark.tistory.com/11 ๊ธ€์˜ 6๋ฒˆ ํ•ญ๋ชฉ๊นŒ์ง€ ๋งˆ์นœ๋’ค 7๋ฒˆ ํ•ญ๋ชฉ ๋Œ€์‹  ์ง€๊ธˆ๋ถ€ํ„ฐ ์ง„ํ–‰๋˜๋Š” ์„ค๋ช…์„ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋œ๋‹ค.mainํ•จ์ˆ˜ ๋ฐ”๋กœ ์ƒ๋‹จ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ž. typedef int(*pDLLFunction)(in.. 2017. 2. 3.
DLL ๋งŒ๋“ค๊ธฐ ๋ฐ ํ˜ธ์ถœํ•˜๊ธฐ ๋”ฐ๋ผํ•˜๊ธฐ : 1. ๋ฌต์‹œ์ (์•”์‹œ์ ) ๋งํ‚น DLL์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋™์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ :๋™์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์˜์–ด: dynamic-link library, DLL)๋Š” ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์œˆ๋„์šฐ์—์„œ ๊ตฌํ˜„๋œ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋‚ด๋ถ€์—๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ๋ถˆ๋Ÿฌ์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ํ™•์žฅDLL์ธ ๊ฒฝ์šฐ๋Š” ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ๋„ ํ•œ๋‹ค. DLL์€ COM์„ ๋‹ด๋Š” ๊ทธ๋ฆ‡์˜ ์—ญํ• ๋„ ํ•œ๋‹ค.์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ,๋ฌต์‹œ์  ๋งํ‚น(Implicit linking) : ์‹คํ–‰ ํŒŒ์ผ ์ž์ฒด์— ์–ด๋–ค DLL์˜ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์ •๋ณด๋ฅผ ํฌํ•จ์‹œํ‚ค๊ณ  ์šด์˜์ฒด์ œ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์„ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ๊ทธ๊ฒƒ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ,๋ช…์‹œ์  ๋งํ‚น(Explicit linking) : ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ API๋ฅผ ์ด์šฉํ•˜์—ฌ DLL ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ณ  ๋™์ ์œผ.. 2017. 2. 3.