MC++ ù ½Ãµµ
±× µ¿¾È ¸Á¼³ÀÌ´Ù MC++À» »ç¿ëÇØ º¸¸®¶ó Å« ¸¾À» ¸Ô°í¼ ±âÁ¸ÀÇ VC(MFC)·Î ÁøÇàÇÏ´ø ¼Ö·ç¼Ç¿¡ C# Ŭ·¡½º ¶óÀ̺귯¸® ÇÁ·ÎÁ§Æ®¸¦ Ãß°¡Çß´Ù.(VC ¶óÀ̺귯¸®¿¡ C# UI°¡ ÀϹÝÀûÀÎ ±×¸²À̰ÚÁö¸¸… -_-)
±×¸®°í ÇÁ·ÎÁ§Æ® ¼Ó¼º¿¡ /clr ¿É¼Ç Ãß°¡.
±×¸®°í C#À¸·Î Ŭ·¡½º ÀÛ¼º.
VC Äڵ忡¼ ´ÙÀ½°ú °°ÀÌ C# °´Ã¼ instanciation.
Test* pTest = new Test();
±×¸®°ï ÄÄÆÄÀÏ… ÄÀ! ³·¼± ÄÄÆÄÀÏ ¿¡·¯ ¹ß»ý.
error C3828: 'TestLib::Test': placement arguments not allowed while creating instances of managed classes
±¸±Û °Ë»öÇØº» °á°ú… MFC µð¹ö±× ¸ðµå¿¡¼± new ¿¬»êÀÚ¸¦ #defineÇØ¼ µýÁþÀ» Çϰí Àֱ⠶§¹®À̶ó°í… ÇØ°áÇÏ·Á¸é new¸¦ #undef ÇÏ´ø°¡ ¾Æ´Ï¸é ´ÙÀ½°ú °°ÀÌ…
#pragma push_macro("new")
#undef new
Test* pTest = new Test();
#pragma pop_macro("new")
¸ðµç °´Ã¼ instanciation¿¡¼ ÀÌ·± ÁþÀ»? ²Ù¾×~! ÅäÇÒ °Í °°Àº ±âºÐ…
Çѹø ½ÇÇàÇϴµ¥ ¾öû³ª°Ô ¸¹Àº dllÀÌ ·ÎµåµÇ°í…
±×¸®°í µð¹ö±× ¸ðµå¿¡¼ Æ®·¡À̽ºµµ ¾ÈµÇ°í…
±×³ª¸¶ System.Diagnostics.Debug.WriteLine()Àº ¸Ô´Â´Ù.
±¦È÷ ¹ß ´ã±º »ý°¢ÀÌ ¸Ó¸®¸¦ Áã¾î ¶âÀ¸¸é¼… À̰ŠÇÏ´À¶ó ³¯¸° ¸î½Ã°£ÀÌ ¾Æ±î¿öÁø´Ù.
[update]
°á±¹ C#°ú C++·Î Á¦ÀÛµÈ flat dllÀÇ Á¶ÇÕÀ¸·Î º¯°æÇÏ°í ¸»¾Ò´Ù.
permalink
