DLL µ¥ÀÌÅÍ °øÀ¯

IPCÁ¾·ù´Â ¾Æ´ÏÁö¸¸ DLL·Î µ¥ÀÌÅ͸¦ °øÀ¯ÇÒ ¼ö ÀÖ´Ù.

100¸Þ°¡ÀÇ ¸®¼Ò½º¸¦ DLL·Î °øÀ¯ÇÑ´Ù¸é 10°³ÀÇ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ¾îµµ 100¸Þ°¡ÀÇ ¿ë·®Àº °øÀ¯µÇ±â ¶§¹®¿¡ ´Ã¾î³ªÁö ¾Ê´Â´Ù.

DLLÀ» ÅëÇÑ µ¥ÀÌÅÍ °øÀ¯´Â °£´ÜÇÏ´Ù.

#pragma  data_seg(".MyShare")

    // CDllServer Á¤Àûº¯¼ö m_iSum¿Í sRef¸¦ °øÀ¯ÇÑ´Ù.

    int    CDllServer::m_iSum = 0;

    int sRef = 0;

#pragma  data_seg()

#pragma  comment( linker, "/SECTION:.MyShare,RWS")

#pragma  data_seg(".MyShare")
°øÀ¯ µ¥ÀÌÅÍ ¼¼±×¸ÕÆ®ÀÇ ½ÃÀÛÀ» " .MyShare" ·Î ¼±¾ðÇÕ´Ï´Ù. À̸§Àº ÀÚÀ¯·Ó°Ô ÁöÀ»¼ö ÀÖ½À´Ï´Ù.

#pragma  data_seg()
°øÀ¯ µ¥ÀÌÅÍ ¼¼±×¸ÕÆ®ÀÇ Á¾·áÀÔ´Ï´Ù.

#pragma  comment( linker, "/SECTION:.MyShare,RWS")
 ".MyShare" ¼¼±×¸ÕÆ®ÀÇ ¼Ó¼ºÀ» Àбâ(R), ¾²±â(W), °øÀ¯(S)·Î ÁöÁ¤ÇÕ´Ï´Ù.
½ÇÇà ¼Ó¼ºÀº EÀÔ´Ï´Ù.

¿©±â¼­´Â µÎ °³ÀÇ º¯¼ö¸¦ °øÀ¯ÇÏ°í ÀÖ½À´Ï´Ù.

    int    CDllServer::m_iSum = 0;
    int sRef = 0;

dll_server.dllÀ» °øÀ¯ÇÏ´Â dll_client.exe¸¦ °è¼Ó ½ÇÇàÇϸé value´Â 3¾¿ Áõ°¡ÇÏ°í, Ref´Â 1¾¿ Áõ°¡ÇÑ´Ù.
»ùÇÃÀ» ½ÇÇà ÇÒ·Á¸é dll_server.dll ÆÄÀÏÀ» dll_client.exe·Î º¹»çÇÑ´Ù.

ÇÁ·ÎÁ§Æ®:  DLL_Share.zip

 

ÂüÁ¶ :
Minor League´Ô ȨÇÇ

http://effortman.tistory.com/11