๋ฐ˜์‘ํ˜•

๋„๊ตฌ ์ƒ์ž์— ์ปจํŠธ๋กค์ด ์ถ”๊ฐ€๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ

C# WinForm์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์ปจํŠธ๋กค ์™ธ์—, ๋‚ด๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ์ปจํŠธ๋กค์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉ์ž ์ปจํŠธ๋กค(Custom control)๋กœ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” NuGet์ด๋‚˜ ๋ˆ„๊ตฐ๊ฐ€ ๋งŒ๋“  ์ปจํŠธ๋กค dll์„ ์‚ฌ์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ์™ธ๋ถ€ ์ปจํŠธ๋กค์„ ํผ(Form) ๋””์ž์ด๋„ˆ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋„๊ตฌ ์ƒ์ž(Tool box)์— ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ์š”. ํ•˜ํ•„์ด๋ฉด Visual Studio ๋ฒ„๊ทธ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜, ๋„๊ตฌ ์ƒ์ž์— ์ปจํŠธ๋กค์„ ์ถ”๊ฐ€ํ•˜๋‹ค๊ฐ€ Visual Studio๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

[Visual Studio] VS2015 ๋„๊ตฌ ์ƒ์ž(ToolBox) ์ข…๋ฃŒ ํ˜„์ƒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

 

[Visual Studio] VS2015 ๋„๊ตฌ ์ƒ์ž(ToolBox) ์ข…๋ฃŒ ํ˜„์ƒ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์ตœ๊ทผ Visual Studio 2015์—์„œ C# Windows Form ์ž‘์—…์ด ์žˆ์—ˆ๋Š”๋ฐ์š”. Custom Control์„ ์ œ์ž‘ํ•˜์—ฌ ์œˆ ํผ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์นจ ์—ฌ๋ถ„์˜ PC๊ฐ€ ๋” ์žˆ์–ด์„œ ํ™•์ธํ•ด ๋ณด์•˜๋Š”๋ฐ, PC 1๋Œ€

luckygg.tistory.com

๊ทธ๋Ÿฐ๋ฐ ๋ฌธ์ œ๋Š” ์œ„ ๋งํฌ์˜ ์กฐ์น˜ ์‚ฌํ•ญ์„ ์ ์šฉํ•ด๋„ ์—ฌ์ „ํžˆ Visual Studio ๋ฒ„์ „์— ์ƒ๊ด€์—†์ด ์ข…๋ฃŒ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ ๊ณจ์น˜ ์•„ํ”ˆ ๋ฌธ์ œ์ธ๋ฐ์š”.

๋ณธ๋ฌธ์—์„œ๋Š” ๋„๊ตฌ ์ƒ์ž์— ์ปจํŠธ๋กค์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ , ์ง์ ‘ ์ฝ”๋“œ ํŽธ์ง‘์œผ๋กœ ์ปจํŠธ๋กค์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋„๊ตฌ ์ƒ์ž ์—†์ด ์ปจํŠธ๋กค ์ถ”๊ฐ€ํ•˜๊ธฐ

์šฐ์„  ์ถ”๊ฐ€ํ•˜๊ณ ์ž ํ•˜๋Š” ์ปจํŠธ๋กค์˜ dll์„ ์ฐธ์กฐ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์˜ˆ์‹œ๋กœ ImageGlass.ImageBox dll์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฐธ์กฐ dll ์ถ”๊ฐ€ํ•˜๊ธฐ

๊ทธ๋ฆฌ๊ณ  ๋ฒ„ํŠผ(Button)๊ณผ ๊ฐ™์€ ์•„๋ฌด ์ปจํŠธ๋กค์ด๋‚˜ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. 

Button ์ปจํŠธ๋กค์ด ์ถ”๊ฐ€๋œ ๋ชจ์Šต

์ด์ œ Form์˜ ๋””์ž์ด๋„ˆ์ธ Form1.Designer.cs ํŒŒ์ผ์„ ๋”๋ธ” ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

Form1.Designer.cs ํŒŒ์ผ์„ ์—ฐ ๋ชจ์Šต

๊ธฐ์กด ์ฝ”๋“œ์—์„œ Button๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์ปจํŠธ๋กค๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ImageGlass์˜ ImageBox๋กœ ๋ชจ๋‘ ๊ต์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋กค์—์„œ ์ง€์›๋˜์ง€ ์•Š๋Š” ์†์„ฑ์€ ์ง€์šฐ์…”๋„ ์ƒ๊ด€์—†์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ์ปจํŠธ๋กค ์ด๋ฆ„์œผ๋กœ ๋ชจ๋‘ ๋ณ€๊ฒฝํ•œ ๋ชจ์Šต

์ด์ œ Form1.cs๋ฅผ ๋”๋ธ” ํด๋ฆญํ•ด์„œ ๋””์ž์ด๋„ˆ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์— ์žˆ๋˜ ๋ฒ„ํŠผ์€ ์‚ฌ๋ผ์ง€๊ณ  ๊ต์ฒดํ•œ ์ปจํŠธ๋กค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ ์ปจํŠธ๋กค๋กœ ๊ต์ฒด๋œ ๋ชจ์Šต

์ฐธ๊ณ ๋กœ, ๋นŒ๋“œ ํ”Œ๋žซํผ์ด x64์ธ ๊ฒฝ์šฐ์—๋Š” ๋นŒ๋“œ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ ๋””์ž์ด๋„ˆ๋ฅผ ์—ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

x64 ๋””์ž์ด๋„ˆ ์˜ค๋ฅ˜

์ •ํ™•ํ•œ ์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค๋งŒ, 64bit์—์„œ ์ƒ์„ฑ๋œ ์ปจํŠธ๋กค์€ ๋นŒ๋“œ ํ”Œ๋žซํผ์ด x64์ผ ๋•Œ ๋””์ž์ด๋„ˆ์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ AnyCPU๋‚˜ x86์œผ๋กœ ๋นŒ๋“œํ•˜๋ฉด ๋””์ž์ด๋„ˆ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๋งŒ์•ฝ, x64์šฉ dll๋งŒ ์žˆ๋‹ค๋ฉด ๋นŒ๋“œ๋Š” ๋˜์ง€๋งŒ ๋””์ž์ด๋„ˆ๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š์•„ ๋‚œ๊ฐํ•œ ์ƒํ™ฉ์— ์ง๋ฉดํ•˜๊ธด ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ฌดํŠผ, ์ปจํŠธ๋กค์ด ๋„๊ตฌ ์ƒ์ž์— ์ •์ƒ์ ์œผ๋กœ ์ถ”๊ฐ€๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ณธ๋ฌธ๊ณผ ๊ฐ™์ด ๋””์ž์ด๋„ˆ ์ฝ”๋“œ ํŽธ์ง‘์œผ๋กœ ์ง์ ‘ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ณ„์‹œ๋ฉด ๊ฝค ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•