161231 .net/win32 IPC, dll dependancy 삽질기

Edit

161231 .net/win32 IPC, dll dependancy 삽질기

황현동 노트북 .net win32 wpf native zmq ipc study blog

개요

  • 최근 회사일로 WPF어플리케이션을 제작하고 있는데 외부 MFC어플리케이션 과 IPC를 해야 할일이 있었고, IPC솔루션으로 ZMQ REQ/REP 모델을 적용하기로 했다.
  • WPF어플쪽에서는 ZMQ를 직접사용하기로 하고 MFC어플은 외부에서 만든거라서 그들이 연동하기 쉽게 ZMQ초기화, 입출력과 함께 연동로직들을 일부 담아서 win32 dll로 제작해서 배포했다.
  • 개발했던 환경은 나는 Win10+VS2015+.NET4.0 에서 WPF어플리케이션을 제작하고 그들은 Win7+VS005+MFC 에서 MFC어플리케이션을 제작해으며 처음 연동했을때 한번에 잘 되서 앞으로도 별 문제 없겠거니 했다.
  • 그러다가 XP, 7 하위호환을 위해서 가상머신을 만들어서 테스트하다가 며칠간 삽질을 했고 결국은 해결했지만 그 과정이 험난해서 같은 어려움이 있는 독자들을 위해서 기록으로 남긴다.
  • 회사프로젝트 고유이름을 사용하기는 이슈가 있을것 같아서 본문글에서는 리네임을 하기로 한다.
    • WPF 어플르케이션 = MyWpfApp
    • MFC 어플리케이션 = MyMfcApp
    • 연동 dll = MyBridge.dll
  • 함께 삽질을 했던 서초동 최과장님께 감사를 드린다.




문제점 & 해결책

winxp, win7 경우, MyWpfApp.exe에서 libzmq.dll 연결초기화 실패

  • MyWpfApp.exe 실행은 잘 되는데, zmq 초기화를 하면 DllNotFoundException이 발생했음.
  • 원인은 MyWpfApp이 사용하는 libzmq.dll 이 vc2010에서 /MD(MultiThread+Dll) 빌드되었으며 이때문에 vc2010의 crt dll들이 접근가능경로에 존재해야 함.
  • win10등의 최신환경일수록 vcredist가 많이 설치되어 있어서 버그발생률이 낮지만 pos처럼 고립된 환경에서 사용되는 os에는 잘 발생할 수 있는 문제임.
I encountered this exact error on Windows Server 2008. As soon as my code attempted to create a clrzmq (2.2.3) object, Windows tried to load the DLL and failed with the error:

Unable to load DLL 'libzmq': The specified module could not be found.
The DLL is most definitely present. I attempted a variety of solutions with permissions, all of which failed to resolve the problem. Downloading & installing the VS2010 C++ redistributable solved my problem.




winxp, win7 경우, MyMfcApp.exe에서 MyBridge.dll 의 로드실패





win7 경우, vcredist 2015 설치오류

  • 이럴수가! winxp에는 vcredist2015가 문제 없이 설치되는데 일부 win7에서는 계속 설치실패됨.
  • 이 문제는 vs2015+win10에서 빌드할때 종속되는 universalCRT라는 새로운 구조의 crt 종속성이 생겨서 발생한 이슈인데, universalCRT가 기존의 crt에 비해서 너무 변경이 커서 win7에서는 단순히 vcredist2015를 설치하는 것에 앞서서 win7 sp1으로 업데이트, kb-2999226(universalCRT변경이 포함된 윈도우 업데이트)를 선행해서 해 줘야 함. (OMG!!!)
    • 사실 이렇게 많은 업데이트를 pc에 설치하는 것은 시간적으로나 프로세스상으로나 큰 부담이 됨.
  • 3가지 대안 솔루션이 있었음.
    1. universalCRT 관련 dll 강제 복사
      • WindowsSDK10 에 포함된 dll들을 모두 타겟환경에 배포하는 방식
      • 이전버전과 달리 universalCRT의 dll들은 용량도 크지만 갯수도 20~30개 정도나 되서 상당한 관리부담이 됨.
      • 또한 이많은 dll들이 MyBridge.dll과 같은 경로에 존재해야 하기 때문에 혹시 MyMfcApp가 배포시 dll끼리 이름충돌이 되서 배포사고로 이어질수도 있어서 MyWpfApp 디렉토리 만들어야 해서 관리부담이 가중됨.
파일 이름   파일 버전   파일 크기   날짜  시간  플랫폼
Api-ms-win-core-file-l1-2-0.dll 10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-core-file-l2-1-0.dll 10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-core-localization-l1-2-0.dll 10.0.10240.16390    14,176  2015년 7월18일 13:08   x86
Api-ms-win-core-processthreads-l1-1-1.dll   10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-core-synch-l1-2-0.dll    10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-core-timezone-l1-1-0.dll 10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-core-xstate-l2-1-0.dll   10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-crt-conio-l1-1-0.dll 10.0.10240.16390    12,640  2015년 7월18일 13:08   x86
Api-ms-win-crt-convert-l1-1-0.dll   10.0.10240.16390    15,712  2015년 7월18일 13:08   x86
Api-ms-win-crt-environment-l1-1-0.dll   10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-crt-filesystem-l1-1-0.dll    10.0.10240.16390    13,664  2015년 7월18일 13:08   x86
Api-ms-win-crt-heap-l1-1-0.dll  10.0.10240.16390    12,640  2015년 7월18일 13:08   x86
Api-ms-win-crt-locale-l1-1-0.dll    10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-crt-math-l1-1-0.dll  10.0.10240.16390    22,368  2015년 7월18일 13:08   x86
Api-ms-win-crt-multibyte-l1-1-0.dll 10.0.10240.16390    19,808  2015년 7월18일 13:08   x86
Api-ms-win-crt-private-l1-1-0.dll   10.0.10240.16390    66,400  2015년 7월18일 13:08   x86
Api-ms-win-crt-process-l1-1-0.dll   10.0.10240.16390    12,640  2015년 7월18일 13:08   x86
Api-ms-win-crt-runtime-l1-1-0.dll   10.0.10240.16390    16,224  2015년 7월18일 13:08   x86
Api-ms-win-crt-stdio-l1-1-0.dll 10.0.10240.16390    17,760  2015년 7월18일 13:08   x86
Api-ms-win-crt-string-l1-1-0.dll    10.0.10240.16390    17,760  2015년 7월18일 13:08   x86
Api-ms-win-crt-time-l1-1-0.dll  10.0.10240.16390    14,176  2015년 7월18일 13:08   x86
Api-ms-win-crt-utility-l1-1-0.dll   10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-eventing-provider-l1-1-0.dll 10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-core-file-l1-2-0.dll 10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-core-file-l2-1-0.dll 10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-core-localization-l1-2-0.dll 10.0.10240.16390    14,176  2015년 7월18일 13:08   x86
Api-ms-win-core-processthreads-l1-1-1.dll   10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-core-synch-l1-2-0.dll    10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-core-timezone-l1-1-0.dll 10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-core-xstate-l2-1-0.dll   10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Api-ms-win-crt-conio-l1-1-0.dll 10.0.10240.16390    12,640  2015년 7월18일 13:08   x86
Api-ms-win-crt-convert-l1-1-0.dll   10.0.10240.16390    15,712  2015년 7월18일 13:08   x86
Api-ms-win-crt-environment-l1-1-0.dll   10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-crt-filesystem-l1-1-0.dll    10.0.10240.16390    13,664  2015년 7월18일 13:08   x86
Api-ms-win-crt-heap-l1-1-0.dll  10.0.10240.16390    12,640  2015년 7월18일 13:08   x86
Api-ms-win-crt-locale-l1-1-0.dll    10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-crt-math-l1-1-0.dll  10.0.10240.16390    22,368  2015년 7월18일 13:08   x86
Api-ms-win-crt-multibyte-l1-1-0.dll 10.0.10240.16390    19,808  2015년 7월18일 13:08   x86
Api-ms-win-crt-private-l1-1-0.dll   10.0.10240.16390    66,400  2015년 7월18일 13:08   x86
Api-ms-win-crt-process-l1-1-0.dll   10.0.10240.16390    12,640  2015년 7월18일 13:08   x86
Api-ms-win-crt-runtime-l1-1-0.dll   10.0.10240.16390    16,224  2015년 7월18일 13:08   x86
Api-ms-win-crt-stdio-l1-1-0.dll 10.0.10240.16390    17,760  2015년 7월18일 13:08   x86
Api-ms-win-crt-string-l1-1-0.dll    10.0.10240.16390    17,760  2015년 7월18일 13:08   x86
Api-ms-win-crt-time-l1-1-0.dll  10.0.10240.16390    14,176  2015년 7월18일 13:08   x86
Api-ms-win-crt-utility-l1-1-0.dll   10.0.10240.16390    12,128  2015년 7월18일 13:08   x86
Api-ms-win-eventing-provider-l1-1-0.dll 10.0.10240.16390    11,616  2015년 7월18일 13:08   x86
Ucrtbase.dll    10.0.10240.16390    901,264 2015년 7월18일 13:08   x86
Ucrtbase.dll    10.0.10240.16390    901,264 2015년 7월18일 13:08   x86
  1. vc2013으로 빌드
    • 어차피 MyBridge.dll에서 사용하는 crt 함수들에서 최신기술을 사용하는게 없으니 MyWpfApp팀 개발환경을 일부 다운그레이드 시키고 vcredist2013을 배포하면 됨.
    • 다른 대안보다 낫긴한데 역시 MyWpfApp팀에 개발환경을 여러개 셋팅하는게 부담.
  2. [최종선택] /MT(MultiThread) 빌드




winxp 경우, MyMfcApp.exe에서 MyBridge.dll 로드성공이후 런타임크래시

  • 이제 정말 종속성 문제는 깔끔하게 해결되어 MyMfcApp가 MyBridge.dll을 잘 로드하기 시작함.
  • 하지만 winxp에서만 MyMfcApp쪽에서 런타임에 크래시 나는 문제가 발생됨.
  • MyBridge.dll 내부에서 CString::Format 을 사용한 코드에서는 크래시가 발생했음.
    • 아직 정확한 원인은 찾지 못했음.
    • 추정하는 원인으로는 MyMfcApp는 vs2015+mfc+mbcs 조합이고 MyBridge.dll은 vs2015+atl+unicode 조합인데, 이 환경사이의 충돌로 생각됨.
    • 더 자세히는 mfc와 atl의 shared class 에 CString 이 있는데 이 클래스 내부의 구현이 서로 다른데 하필 Format 함수의 구현이 충돌되지 않았나 생각됨.
    • 깊이 찾아보진 않았지만 비슷한 이슈가 있었고 해결은 못한 케이스가 있음.
  • CString::Format대신 sprintf crt 함수로 대채해서 회피함. 향후 여유 있을때 깊이 파서 해결할 것.




해결책 정리

1. 닷넷어플리케이션에서 에서 native dll이 파일 존재하는데 DllNotFoundException이 발생한다면,
-> 
Dependancy Walker 찍어보고 버전에 맞게 vcredist 설치해줌. 
모듈들을 nuget 으로 설치/업데이트 하기 때문에 바이너리 재빌드 하는 것은 소용없고 종속성 해결해 가면서 쓰는게 맞음.

2. 타겟os가 하위버전이면서 다양해서 종속성 챙기기 너무 고생스럽다면,
->
모든 dll과 exe를 /MT 링크옵션으로!

3. dll을 만들었는데 호스트프로세스가 vs2005+mfc 를 사용한 경우라면,
->
CString::Format 에서 크래시 되는지 확인후 sprintf 로 변경할것.




디버깅 꿀팁(?)

  • virtualbox snapshot
  • Dependancy Walker
  • DebugView + OutputDebugString
  • dll version resource
    • 개발중 혹은 운영상황에서 dll 파일을 배포할때 버전관리 용도로 사용하면 명확하고 편리함.
    • 여러 속성중 FileDescription이 문자열항목이라 버전번호 이외에도 간단한 설명도 포함할수 있어서 더 편함.
    • MyWpfApp팀은 써드파티 개발자에게 배포할때 자동으로 날짜와 설명이 입력되어 빌드되게 스크립트 만들어 두었음.
write "enter rcComment ..."
$rcComment = Read-Host "enter rcComment"
$rcContent = cat ..\MyBridge\MyBridge.rc.template
$rcContent = $rcContent -replace "<FileDescription/>", ("{0} {1}" -f (date).ToString("yyMMdd-HHmmss"), $rcComment)
$rcContent | Set-Content ..\MyBridge\MyBridge.rc
  • 카카오톡 단톡방 파일전송
    • 타겟pc에 카톡설치해서 디버깅pc와 서로 파일, url, 로그, 캡쳐이미지 등 주고 받으면 디버깅과정을 공유하기도 좋고 이력도 남아서 좋음.
    • 계정이 한개 더 필요한것이 약간 문제…




%23%20161231%20.net/win32%20IPC%2C%20dll%20dependancy%20%uC0BD%uC9C8%uAE30%0A%0A@%28%uD669%uD604%uB3D9%20%uB178%uD2B8%uBD81%29%5B.net%2C%20win32%2C%20wpf%2C%20native%2C%20zmq%2C%20ipc%2C%20study%2C%20blog%5D%0A%0A%5Btoc%5D%0A%0A%23%23%20%uAC1C%uC694%0A-%20%uCD5C%uADFC%20%uD68C%uC0AC%uC77C%uB85C%20WPF%uC5B4%uD50C%uB9AC%uCF00%uC774%uC158%uC744%20%uC81C%uC791%uD558%uACE0%20%uC788%uB294%uB370%20%uC678%uBD80%20MFC%uC5B4%uD50C%uB9AC%uCF00%uC774%uC158%20%uACFC%20IPC%uB97C%20%uD574%uC57C%20%uD560%uC77C%uC774%20%uC788%uC5C8%uACE0%2C%20IPC%uC194%uB8E8%uC158%uC73C%uB85C%20ZMQ%20REQ/REP%20%uBAA8%uB378%uC744%20%uC801%uC6A9%uD558%uAE30%uB85C%20%uD588%uB2E4.%0A-%20WPF%uC5B4%uD50C%uCABD%uC5D0%uC11C%uB294%20ZMQ%uB97C%20%uC9C1%uC811%uC0AC%uC6A9%uD558%uAE30%uB85C%20%uD558%uACE0%20MFC%uC5B4%uD50C%uC740%20%uC678%uBD80%uC5D0%uC11C%20%uB9CC%uB4E0%uAC70%uB77C%uC11C%20%uADF8%uB4E4%uC774%20%uC5F0%uB3D9%uD558%uAE30%20%uC27D%uAC8C%20ZMQ%uCD08%uAE30%uD654%2C%20%uC785%uCD9C%uB825%uACFC%20%uD568%uAED8%20%uC5F0%uB3D9%uB85C%uC9C1%uB4E4%uC744%20%uC77C%uBD80%20%uB2F4%uC544%uC11C%20win32%20dll%uB85C%20%uC81C%uC791%uD574%uC11C%20%uBC30%uD3EC%uD588%uB2E4.%0A-%20%uAC1C%uBC1C%uD588%uB358%20%uD658%uACBD%uC740%20%uB098%uB294%20Win10+VS2015+.NET4.0%20%uC5D0%uC11C%20WPF%uC5B4%uD50C%uB9AC%uCF00%uC774%uC158%uC744%20%uC81C%uC791%uD558%uACE0%20%uADF8%uB4E4%uC740%20Win7+VS005+MFC%20%uC5D0%uC11C%20MFC%uC5B4%uD50C%uB9AC%uCF00%uC774%uC158%uC744%20%uC81C%uC791%uD574%uC73C%uBA70%20%uCC98%uC74C%20%uC5F0%uB3D9%uD588%uC744%uB54C%20%uD55C%uBC88%uC5D0%20%uC798%20%uB418%uC11C%20%uC55E%uC73C%uB85C%uB3C4%20%uBCC4%20%uBB38%uC81C%20%uC5C6%uACA0%uAC70%uB2C8%20%uD588%uB2E4.%0A-%20%uADF8%uB7EC%uB2E4%uAC00%20XP%2C%207%20%uD558%uC704%uD638%uD658%uC744%20%uC704%uD574%uC11C%20%uAC00%uC0C1%uBA38%uC2E0%uC744%20%uB9CC%uB4E4%uC5B4%uC11C%20%uD14C%uC2A4%uD2B8%uD558%uB2E4%uAC00%20%uBA70%uCE60%uAC04%20%uC0BD%uC9C8%uC744%20%uD588%uACE0%20%uACB0%uAD6D%uC740%20%uD574%uACB0%uD588%uC9C0%uB9CC%20%uADF8%20%uACFC%uC815%uC774%20%uD5D8%uB09C%uD574%uC11C%20%uAC19%uC740%20%uC5B4%uB824%uC6C0%uC774%20%uC788%uB294%20%uB3C5%uC790%uB4E4%uC744%20%uC704%uD574%uC11C%20%uAE30%uB85D%uC73C%uB85C%20%uB0A8%uAE34%uB2E4.%0A-%20%uD68C%uC0AC%uD504%uB85C%uC81D%uD2B8%20%uACE0%uC720%uC774%uB984%uC744%20%uC0AC%uC6A9%uD558%uAE30%uB294%20%uC774%uC288%uAC00%20%uC788%uC744%uAC83%20%uAC19%uC544%uC11C%20%uBCF8%uBB38%uAE00%uC5D0%uC11C%uB294%20%uB9AC%uB124%uC784%uC744%20%uD558%uAE30%uB85C%20%uD55C%uB2E4.%0A%09-%20WPF%20%uC5B4%uD50C%uB974%uCF00%uC774%uC158%20%3D%20MyWpfApp%0A%09-%20MFC%20%uC5B4%uD50C%uB9AC%uCF00%uC774%uC158%20%3D%20MyMfcApp%0A%09-%20%uC5F0%uB3D9%20dll%20%3D%20MyBridge.dll%0A-%20%uD568%uAED8%20%uC0BD%uC9C8%uC744%20%uD588%uB358%20%uC11C%uCD08%uB3D9%20%uCD5C%uACFC%uC7A5%uB2D8%uAED8%20%uAC10%uC0AC%uB97C%20%uB4DC%uB9B0%uB2E4.%0A%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%0A%23%23%20%uBB38%uC81C%uC810%20%26%20%uD574%uACB0%uCC45%0A%23%23%23%20winxp%2C%20win7%20%uACBD%uC6B0%2C%20MyWpfApp.exe%uC5D0%uC11C%20libzmq.dll%20%uC5F0%uACB0%uCD08%uAE30%uD654%20%uC2E4%uD328%0A-%20MyWpfApp.exe%20%uC2E4%uD589%uC740%20%uC798%20%uB418%uB294%uB370%2C%20zmq%20%uCD08%uAE30%uD654%uB97C%20%uD558%uBA74%20DllNotFoundException%uC774%20%uBC1C%uC0DD%uD588%uC74C.%0A-%20%uC6D0%uC778%uC740%20MyWpfApp%uC774%20%uC0AC%uC6A9%uD558%uB294%20libzmq.dll%20%uC774%20vc2010%uC5D0%uC11C%20/MD%28MultiThread+Dll%29%20%uBE4C%uB4DC%uB418%uC5C8%uC73C%uBA70%20%uC774%uB54C%uBB38%uC5D0%20vc2010%uC758%20crt%20dll%uB4E4%uC774%20%uC811%uADFC%uAC00%uB2A5%uACBD%uB85C%uC5D0%20%uC874%uC7AC%uD574%uC57C%20%uD568.%0A-%20win10%uB4F1%uC758%20%uCD5C%uC2E0%uD658%uACBD%uC77C%uC218%uB85D%20vcredist%uAC00%20%uB9CE%uC774%20%uC124%uCE58%uB418%uC5B4%20%uC788%uC5B4%uC11C%20%uBC84%uADF8%uBC1C%uC0DD%uB960%uC774%20%uB0AE%uC9C0%uB9CC%20pos%uCC98%uB7FC%20%uACE0%uB9BD%uB41C%20%uD658%uACBD%uC5D0%uC11C%20%uC0AC%uC6A9%uB418%uB294%20os%uC5D0%uB294%20%uC798%20%uBC1C%uC0DD%uD560%20%uC218%20%uC788%uB294%20%uBB38%uC81C%uC784.%0A%20%20%20%20-%20clrzmq%uC5D0%20%uD3EC%uD568%uB41C%20libzmq.dll%uC758%20%uC885%uC18D%uC131%20%uD574%uACB0%uC5D0%20%uB300%uD55C%20%uBB38%uB2F5%20%3A%20http%3A//stackoverflow.com/questions/4718262/zeromq-dllnotfoundexception-using-net-bindings%0A%0A%60%60%60tex%0AI%20encountered%20this%20exact%20error%20on%20Windows%20Server%202008.%20As%20soon%20as%20my%20code%20attempted%20to%20create%20a%20clrzmq%20%282.2.3%29%20object%2C%20Windows%20tried%20to%20load%20the%20DLL%20and%20failed%20with%20the%20error%3A%0A%0AUnable%20to%20load%20DLL%20%27libzmq%27%3A%20The%20specified%20module%20could%20not%20be%20found.%0AThe%20DLL%20is%20most%20definitely%20present.%20I%20attempted%20a%20variety%20of%20solutions%20with%20permissions%2C%20all%20of%20which%20failed%20to%20resolve%20the%20problem.%20Downloading%20%26%20installing%20the%20VS2010%20C++%20redistributable%20solved%20my%20problem.%0A%60%60%60%0A%0A-%20%uC774%uB97C%20%uD574%uACB0%uD558%uAE30%20%uC704%uD574%uC11C%20vcredist%202010%uC744%20%uBC30%uD3EC%uD560%20%uD544%uC694%uAC00%20%uC788%uC5C8%uACE0%20MyWpfApp.exe%20%uAC00%20%uAC00%uC9C4%20%uC885%uC18D%uC131%uC778%20%uB9CC%uD07C%20MyWpfAppInstaller%uAC00%20%uBC30%uD3EC%uD558%uB3C4%uB85D%20%uC218%uC815%uD568.%0A%20%20%20%20-%20vcredist2010%20download%20%3A%20https%3A//www.microsoft.com/ko-kr/download/details.aspx%3Fid%3D5555%0A%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%0A%23%23%23%20winxp%2C%20win7%20%uACBD%uC6B0%2C%20MyMfcApp.exe%uC5D0%uC11C%20MyBridge.dll%20%uC758%20%uB85C%uB4DC%uC2E4%uD328%0A-%20MyMfcApp.exe%20%uC5D0%uC11C%20LoadLibrary%28%22MyBridge.dll%22%29%20%uD558%uBA74%20%uB85C%uB4DC%uC2E4%uD328%20%uB418%uB294%20%uBB38%uC81C%uAC00%20%uC788%uC5C8%uC74C.%0A-%20%uC717%uBB38%uC81C%uC640%20%uB9C8%uCC2C%uAC00%uC9C0%uB85C%20vcredist%20%uBBF8%uC124%uCE58%20%uBB38%uC81C%uB85C%20%uC774%uBC88%uC5D0%uB294%20MyWpfApp%uD300%20%uAC1C%uBC1C%uD658%uACBD%uC778%20vc2015%uC5D0%20%uD544%uC694%uD55C%20vcredist%202015%uB97C%20%uC124%uCE58%uD574%uC11C%20%uD574%uACB0%uD560%20%uC218%20%uC788%uB294%20%uBB38%uC81C%uC784.%0A%20%20%20%20-%20%uCC38%uACE0%uB85C%20msdn%uC5D0%uC11C%uB294%20%uAD00%uB828%20dll%uC744%20%uC9C1%uC811%uBC30%uD3EC%uD558%uC9C0%20%uC54A%uACE0%20vcredist%20%uC124%uCE58%uB97C%20%uD1B5%uD574%20side%20by%20side%20%uAE30%uB2A5%uC73C%uB85C%20%uB7F0%uD0C0%uC784%20%uBC14%uC778%uB529%uC744%20%uD558%uB294%20%uAC83%uC744%20%uAD8C%uC7A5%uD568.%0A%20%20%20%20%20%20%20%20-%20side%20by%20side%20%uC18C%uAC1C%20%3A%20https%3A//msdn.microsoft.com/ko-kr/library/fdhkd3a5%28v%3Dvs.110%29.aspx%0A%20%20%20%20%20%20%20%20-%20side%20by%20side%20%uBB38%uC81C%uD574%uACB0%20%uAC00%uC774%uB4DC%20%3A%20https%3A//blogs.msdn.microsoft.com/dsvc/2008/08/07/part-1-troubleshooting-vc-side-by-side-problems/%0A-%20MyWpfApp%uC124%uCE58%uD504%uB85C%uADF8%uB7A8%uC774%20vcredist2015%uB97C%20%uBC30%uD3EC%2C%20%uC124%uCE58%uD558%uC5EC%20%uD574%uACB0%0A%20%20%20%20-%20vcredist2015%20%uB2E4%uC6B4%uB85C%uB4DC%20%3A%20https%3A//www.microsoft.com/en-us/download/details.aspx%3Fid%3D53840%0A%20%20%20%20-%20%uC5C4%uBC00%uD788%20%uB530%uC9C0%uC790%uBA74%20MyMfcApp%uC774%20%uC0AC%uC6A9%uD558%uB294%20MyBridge.dll%uC774%20%uC774%uB97C%20%uBC30%uD3EC%2C%20%uC124%uCE58%uD558%uB294%20%uAC83%uC774%20%uB9DE%uC9C0%uB9CC%20%uAC1C%uBC1C%uD3B8%uC758%uC0C1%20MyWpfApp%uC124%uCE58%uD504%uB85C%uADF8%uB7A8%uC774%20%uB300%uC2E0%uD558%uB3C4%uB85D%20%uD568.%0A%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%0A%23%23%23%20win7%20%uACBD%uC6B0%2C%20vcredist%202015%20%uC124%uCE58%uC624%uB958%0A-%20%uC774%uB7F4%uC218%uAC00%21%20winxp%uC5D0%uB294%20vcredist2015%uAC00%20%uBB38%uC81C%20%uC5C6%uC774%20%uC124%uCE58%uB418%uB294%uB370%20%uC77C%uBD80%20win7%uC5D0%uC11C%uB294%20%uACC4%uC18D%20%uC124%uCE58%uC2E4%uD328%uB428.%0A-%20%uC774%20%uBB38%uC81C%uB294%20vs2015+win10%uC5D0%uC11C%20%uBE4C%uB4DC%uD560%uB54C%20%uC885%uC18D%uB418%uB294%20universalCRT%uB77C%uB294%20%uC0C8%uB85C%uC6B4%20%uAD6C%uC870%uC758%20crt%20%uC885%uC18D%uC131%uC774%20%uC0DD%uACA8%uC11C%20%uBC1C%uC0DD%uD55C%20%uC774%uC288%uC778%uB370%2C%20universalCRT%uAC00%20%uAE30%uC874%uC758%20crt%uC5D0%20%uBE44%uD574%uC11C%20%uB108%uBB34%20%uBCC0%uACBD%uC774%20%uCEE4%uC11C%20win7%uC5D0%uC11C%uB294%20%uB2E8%uC21C%uD788%20vcredist2015%uB97C%20%uC124%uCE58%uD558%uB294%20%uAC83%uC5D0%20%uC55E%uC11C%uC11C%20win7%20sp1%uC73C%uB85C%20%uC5C5%uB370%uC774%uD2B8%2C%20kb-2999226%28universalCRT%uBCC0%uACBD%uC774%20%uD3EC%uD568%uB41C%20%uC708%uB3C4%uC6B0%20%uC5C5%uB370%uC774%uD2B8%29%uB97C%20%uC120%uD589%uD574%uC11C%20%uD574%20%uC918%uC57C%20%uD568.%20%28OMG%21%21%21%29%0A%20%20%20%20-%20%uC0AC%uC2E4%20%uC774%uB807%uAC8C%20%uB9CE%uC740%20%uC5C5%uB370%uC774%uD2B8%uB97C%20pc%uC5D0%20%uC124%uCE58%uD558%uB294%20%uAC83%uC740%20%uC2DC%uAC04%uC801%uC73C%uB85C%uB098%20%uD504%uB85C%uC138%uC2A4%uC0C1%uC73C%uB85C%uB098%20%uD070%20%uBD80%uB2F4%uC774%20%uB428.%0A-%203%uAC00%uC9C0%20%uB300%uC548%20%uC194%uB8E8%uC158%uC774%20%uC788%uC5C8%uC74C.%0A%20%20%20%201.%20universalCRT%20%uAD00%uB828%20dll%20%uAC15%uC81C%20%uBCF5%uC0AC%0A%20%20%20%20%20%20%20%20-%20WindowsSDK10%20%uC5D0%20%uD3EC%uD568%uB41C%20dll%uB4E4%uC744%20%uBAA8%uB450%20%uD0C0%uAC9F%uD658%uACBD%uC5D0%20%uBC30%uD3EC%uD558%uB294%20%uBC29%uC2DD%0A%20%20%20%20%20%20%20%20-%20%uC774%uC804%uBC84%uC804%uACFC%20%uB2EC%uB9AC%20universalCRT%uC758%20dll%uB4E4%uC740%20%uC6A9%uB7C9%uB3C4%20%uD06C%uC9C0%uB9CC%20%uAC2F%uC218%uB3C4%2020%7E30%uAC1C%20%uC815%uB3C4%uB098%20%uB418%uC11C%20%uC0C1%uB2F9%uD55C%20%uAD00%uB9AC%uBD80%uB2F4%uC774%20%uB428.%0A%20%20%20%20%20%20%20%20-%20%uB610%uD55C%20%uC774%uB9CE%uC740%20dll%uB4E4%uC774%20MyBridge.dll%uACFC%20%uAC19%uC740%20%uACBD%uB85C%uC5D0%20%uC874%uC7AC%uD574%uC57C%20%uD558%uAE30%20%uB54C%uBB38%uC5D0%20%uD639%uC2DC%20%20MyMfcApp%uAC00%20%uBC30%uD3EC%uC2DC%20dll%uB07C%uB9AC%20%uC774%uB984%uCDA9%uB3CC%uC774%20%uB418%uC11C%20%uBC30%uD3EC%uC0AC%uACE0%uB85C%20%uC774%uC5B4%uC9C8%uC218%uB3C4%20%uC788%uC5B4%uC11C%20MyWpfApp%20%uB514%uB809%uD1A0%uB9AC%20%uB9CC%uB4E4%uC5B4%uC57C%20%uD574%uC11C%20%uAD00%uB9AC%uBD80%uB2F4%uC774%20%uAC00%uC911%uB428.%0A%0A%60%60%60tex%0A%uD30C%uC77C%20%uC774%uB984%09%uD30C%uC77C%20%uBC84%uC804%09%uD30C%uC77C%20%uD06C%uAE30%09%uB0A0%uC9DC%09%uC2DC%uAC04%09%uD50C%uB7AB%uD3FC%0AApi-ms-win-core-file-l1-2-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-file-l2-1-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-localization-l1-2-0.dll%0910.0.10240.16390%0914%2C176%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-processthreads-l1-1-1.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-synch-l1-2-0.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-timezone-l1-1-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-xstate-l2-1-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-conio-l1-1-0.dll%0910.0.10240.16390%0912%2C640%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-convert-l1-1-0.dll%0910.0.10240.16390%0915%2C712%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-environment-l1-1-0.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-filesystem-l1-1-0.dll%0910.0.10240.16390%0913%2C664%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-heap-l1-1-0.dll%0910.0.10240.16390%0912%2C640%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-locale-l1-1-0.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-math-l1-1-0.dll%0910.0.10240.16390%0922%2C368%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-multibyte-l1-1-0.dll%0910.0.10240.16390%0919%2C808%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-private-l1-1-0.dll%0910.0.10240.16390%0966%2C400%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-process-l1-1-0.dll%0910.0.10240.16390%0912%2C640%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-runtime-l1-1-0.dll%0910.0.10240.16390%0916%2C224%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-stdio-l1-1-0.dll%0910.0.10240.16390%0917%2C760%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-string-l1-1-0.dll%0910.0.10240.16390%0917%2C760%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-time-l1-1-0.dll%0910.0.10240.16390%0914%2C176%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-utility-l1-1-0.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-eventing-provider-l1-1-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-file-l1-2-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-file-l2-1-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-localization-l1-2-0.dll%0910.0.10240.16390%0914%2C176%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-processthreads-l1-1-1.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-synch-l1-2-0.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-timezone-l1-1-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-core-xstate-l2-1-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-conio-l1-1-0.dll%0910.0.10240.16390%0912%2C640%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-convert-l1-1-0.dll%0910.0.10240.16390%0915%2C712%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-environment-l1-1-0.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-filesystem-l1-1-0.dll%0910.0.10240.16390%0913%2C664%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-heap-l1-1-0.dll%0910.0.10240.16390%0912%2C640%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-locale-l1-1-0.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-math-l1-1-0.dll%0910.0.10240.16390%0922%2C368%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-multibyte-l1-1-0.dll%0910.0.10240.16390%0919%2C808%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-private-l1-1-0.dll%0910.0.10240.16390%0966%2C400%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-process-l1-1-0.dll%0910.0.10240.16390%0912%2C640%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-runtime-l1-1-0.dll%0910.0.10240.16390%0916%2C224%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-stdio-l1-1-0.dll%0910.0.10240.16390%0917%2C760%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-string-l1-1-0.dll%0910.0.10240.16390%0917%2C760%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-time-l1-1-0.dll%0910.0.10240.16390%0914%2C176%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-crt-utility-l1-1-0.dll%0910.0.10240.16390%0912%2C128%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AApi-ms-win-eventing-provider-l1-1-0.dll%0910.0.10240.16390%0911%2C616%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AUcrtbase.dll%0910.0.10240.16390%09901%2C264%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0AUcrtbase.dll%0910.0.10240.16390%09901%2C264%092015%uB144%207%uC6D418%uC77C%0913%3A08%09x86%0A%60%60%60%0A%0A2.%20vc2013%uC73C%uB85C%20%uBE4C%uB4DC%0A%20%20%20%20-%20%uC5B4%uCC28%uD53C%20MyBridge.dll%uC5D0%uC11C%20%uC0AC%uC6A9%uD558%uB294%20crt%20%uD568%uC218%uB4E4%uC5D0%uC11C%20%uCD5C%uC2E0%uAE30%uC220%uC744%20%uC0AC%uC6A9%uD558%uB294%uAC8C%20%uC5C6%uC73C%uB2C8%20MyWpfApp%uD300%20%uAC1C%uBC1C%uD658%uACBD%uC744%20%uC77C%uBD80%20%uB2E4%uC6B4%uADF8%uB808%uC774%uB4DC%20%uC2DC%uD0A4%uACE0%20vcredist2013%uC744%20%uBC30%uD3EC%uD558%uBA74%20%uB428.%0A%20%20%20%20-%20%uB2E4%uB978%20%uB300%uC548%uBCF4%uB2E4%20%uB0AB%uAE34%uD55C%uB370%20%uC5ED%uC2DC%20MyWpfApp%uD300%uC5D0%20%uAC1C%uBC1C%uD658%uACBD%uC744%20%uC5EC%uB7EC%uAC1C%20%uC14B%uD305%uD558%uB294%uAC8C%20%uBD80%uB2F4.%0A%0A3.%20%5B%uCD5C%uC885%uC120%uD0DD%5D%20/MT%28MultiThread%29%20%uBE4C%uB4DC%0A-%20MyWpfApp%uD300%uC5D0%uC11C%20MyMfcApp%uC5D0%20%uBC30%uD3EC%uD558%uB294%20dll%uC740%20%uD544%uC218%uC801%uC73C%uB85C%uB294%202%uAC1C%uB85C%20MyBridge.dll%2C%20libzmq.dll%20%uC784.%0A-%20%uC774%20dll%uB4E4%uC740%20side%20by%20side%20%uAE30%uB2A5%uC73C%uB85C%20%uB7F0%uD0C0%uC784%20%uBC14%uC778%uB529%uC744%20%uD558%uAE30%uC704%uD574%uC11C%20/MD%28MultiThread+Dll%29%20%uBE4C%uB4DC%uB97C%20%uD588%uC74C.%0A%20%20%20%20-%20msdn%uC5D0%uC11C%uB294%20%uC9C1%uC811%uBC30%uD3EC%uBCF4%uB2E4%uB294%20side%20by%20side%20%uAE30%uB2A5%uC744%20%uC0AC%uC6A9%uD558%uC5EC%20%uC708%uB3C4%uC6B0%20%uC5C5%uB370%uC774%uD2B8%uB97C%20%uD1B5%uD55C%20crt%uC758%20%uBCF4%uC548%20%uBC0F%20%uC131%uB2A5%uC5C5%uB370%uC774%uD2B8%uB97C%20%uBC1B%uB3C4%uB85D%20%uAD8C%uC7A5%uD568.%0A%20%20%20%20%20%20%20%20-%20%uC774%20%uB54C%uBB38%uC5D0%20visual%20studio%uC758%20%uAE30%uBCF8%uC14B%uD305%uB3C4%20/MD%uB85C%20%uB418%uC5B4%20%uC788%uC74C%0A%20%20%20%20%20%20%20%20-%20%uD558%uC9C0%uB9CC%20MyBridge.dll%uC774%20%uB2E4%uC591%uD55C%20%uD558%uC704%uD658%uACBD%uC5D0%20%uB300%uD55C%20%uD638%uD658%uC131%uC744%20%uC9C0%uCF1C%uC57C%20%uD558%uB294%20%uC0C1%uD669%uC774%uB77C%20%uACB0%uAD6D%20%uD3EC%uAE30%uD558%uAE30%uB85C%20%uD568.%0A%20%20%20%20%20%20%20%20-%20MyWpfApp%uD300%uC5D0%uC11C%20%uBC30%uD3EC%uD558%uB294%20%uBAA8%uB4E0%20dll%20exe%20%uC5D0%20%uB300%uD55C%20crt%20%uB77C%uC774%uBE0C%uB7EC%uB9AC%20%uC885%uC18D%uC131%uC744%20%uBAA8%uB450%20/MT%28MultiThread%29%20%uBE4C%uB4DC%uB97C%20%uD1B5%uD574%20%uC81C%uAC70%uD558%uACE0%20%uB3D9%uC2DC%uC5D0%20%uC708%uB3C4%uC6B0%20%uC5C5%uB370%uC774%uD2B8%20%uD6A8%uACFC%uB3C4%20%uD3EC%uAE30%uD558%uAE30%uB85C%20%uD568.%0A%20%20%20%20%20%20%20%20%20%20%20%20-%20MyBridge.dll%20%uC774%20%uC131%uB2A5%uC774%uB098%20%uBCF4%uC548%uBCF4%uB2E4%uB294%20%uC124%uCE58/%uBC30%uD3EC%20%uD3B8%uC758%uAC00%20%uB354%20%uC911%uC694%uD558%uB2E4%uB294%20%uD310%uB2E8%21%0A%0A-%20%uCC38%uACE0%uC790%uB8CC%0A%20%20%20%20-%20win7%20sp1%20%uC5C5%uB370%uC774%uD2B8%20%3A%20https%3A//www.microsoft.com/ko-KR/download/details.aspx%3Fid%3D5842%0A%20%20%20%20-%20%uC708%uB3C4%uC6B0%uC5C5%uB370%uC774%uD2B8%20kb-2999226%20%3A%20https%3A//support.microsoft.com/ko-kr/kb/2999226%0A%20%20%20%20-%20win10%20sdk%20%uB2E4%uC6B4%uB85C%uB4DC%28universalCRT%20dll%20%uD3EC%uD568%29%20%3A%20https%3A//developer.microsoft.com/en-us/windows/downloads/windows-10-sdk%0A%20%20%20%20-%20universalCRT%20%uC18C%uAC1C%2C%20%uBC30%uD3EC%uAC00%uC774%uB4DC%20%3A%20https%3A//blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/%0A%20%20%20%20-%20visual%20studio%20%uB9C1%uCEE4%uC635%uC158%20/MT%20/MD%20...%20%3A%20https%3A//msdn.microsoft.com/ko-kr/library/2kzt1wy3.aspx%0A%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%0A%23%23%23%20winxp%20%uACBD%uC6B0%2C%20MyMfcApp.exe%uC5D0%uC11C%20MyBridge.dll%20%uB85C%uB4DC%uC131%uACF5%uC774%uD6C4%20%uB7F0%uD0C0%uC784%uD06C%uB798%uC2DC%0A-%20%uC774%uC81C%20%uC815%uB9D0%20%uC885%uC18D%uC131%20%uBB38%uC81C%uB294%20%uAE54%uB054%uD558%uAC8C%20%uD574%uACB0%uB418%uC5B4%20MyMfcApp%uAC00%20MyBridge.dll%uC744%20%uC798%20%uB85C%uB4DC%uD558%uAE30%20%uC2DC%uC791%uD568.%0A-%20%uD558%uC9C0%uB9CC%20winxp%uC5D0%uC11C%uB9CC%20MyMfcApp%uCABD%uC5D0%uC11C%20%uB7F0%uD0C0%uC784%uC5D0%20%uD06C%uB798%uC2DC%20%uB098%uB294%20%uBB38%uC81C%uAC00%20%uBC1C%uC0DD%uB428.%0A-%20MyBridge.dll%20%uB0B4%uBD80%uC5D0%uC11C%20CString%3A%3AFormat%20%uC744%20%uC0AC%uC6A9%uD55C%20%uCF54%uB4DC%uC5D0%uC11C%uB294%20%uD06C%uB798%uC2DC%uAC00%20%uBC1C%uC0DD%uD588%uC74C.%0A%20%20%20%20-%20%uC544%uC9C1%20%uC815%uD655%uD55C%20%uC6D0%uC778%uC740%20%uCC3E%uC9C0%20%uBABB%uD588%uC74C.%20%0A%20%20%20%20-%20%uCD94%uC815%uD558%uB294%20%uC6D0%uC778%uC73C%uB85C%uB294%20MyMfcApp%uB294%20vs2015+mfc+mbcs%20%uC870%uD569%uC774%uACE0%20MyBridge.dll%uC740%20vs2015+atl+unicode%20%uC870%uD569%uC778%uB370%2C%20%uC774%20%uD658%uACBD%uC0AC%uC774%uC758%20%uCDA9%uB3CC%uB85C%20%uC0DD%uAC01%uB428.%0A%20%20%20%20-%20%uB354%20%uC790%uC138%uD788%uB294%20mfc%uC640%20atl%uC758%20shared%20class%20%uC5D0%20CString%20%uC774%20%uC788%uB294%uB370%20%uC774%20%uD074%uB798%uC2A4%20%uB0B4%uBD80%uC758%20%uAD6C%uD604%uC774%20%uC11C%uB85C%20%uB2E4%uB978%uB370%20%uD558%uD544%20Format%20%uD568%uC218%uC758%20%uAD6C%uD604%uC774%20%uCDA9%uB3CC%uB418%uC9C0%20%uC54A%uC558%uB098%20%uC0DD%uAC01%uB428.%0A%20%20%20%20-%20%uAE4A%uC774%20%uCC3E%uC544%uBCF4%uC9C4%20%uC54A%uC558%uC9C0%uB9CC%20%uBE44%uC2B7%uD55C%20%uC774%uC288%uAC00%20%uC788%uC5C8%uACE0%20%uD574%uACB0%uC740%20%uBABB%uD55C%20%uCF00%uC774%uC2A4%uAC00%20%uC788%uC74C.%0A%20%20%20%20%20%20%20%20-%20http%3A//stackoverflow.com/questions/4747256/cstring-format-problem-and-differences-in-windows-xp-and-7%0A-%20CString%3A%3AFormat%uB300%uC2E0%20sprintf%20crt%20%uD568%uC218%uB85C%20%uB300%uCC44%uD574%uC11C%20%uD68C%uD53C%uD568.%20%uD5A5%uD6C4%20%uC5EC%uC720%20%uC788%uC744%uB54C%20%uAE4A%uC774%20%uD30C%uC11C%20%uD574%uACB0%uD560%20%uAC83.%0A%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%0A%23%23%20%uD574%uACB0%uCC45%20%uC815%uB9AC%0A%0A%60%60%60tex%0A1.%20%uB2F7%uB137%uC5B4%uD50C%uB9AC%uCF00%uC774%uC158%uC5D0%uC11C%20%uC5D0%uC11C%20native%20dll%uC774%20%uD30C%uC77C%20%uC874%uC7AC%uD558%uB294%uB370%20DllNotFoundException%uC774%20%uBC1C%uC0DD%uD55C%uB2E4%uBA74%2C%0A-%3E%20%0ADependancy%20Walker%20%uCC0D%uC5B4%uBCF4%uACE0%20%uBC84%uC804%uC5D0%20%uB9DE%uAC8C%20vcredist%20%uC124%uCE58%uD574%uC90C.%20%0A%uBAA8%uB4C8%uB4E4%uC744%20nuget%20%uC73C%uB85C%20%uC124%uCE58/%uC5C5%uB370%uC774%uD2B8%20%uD558%uAE30%20%uB54C%uBB38%uC5D0%20%uBC14%uC774%uB108%uB9AC%20%uC7AC%uBE4C%uB4DC%20%uD558%uB294%20%uAC83%uC740%20%uC18C%uC6A9%uC5C6%uACE0%20%uC885%uC18D%uC131%20%uD574%uACB0%uD574%20%uAC00%uBA74%uC11C%20%uC4F0%uB294%uAC8C%20%uB9DE%uC74C.%0A%0A2.%20%uD0C0%uAC9Fos%uAC00%20%uD558%uC704%uBC84%uC804%uC774%uBA74%uC11C%20%uB2E4%uC591%uD574%uC11C%20%uC885%uC18D%uC131%20%uCC59%uAE30%uAE30%20%uB108%uBB34%20%uACE0%uC0DD%uC2A4%uB7FD%uB2E4%uBA74%2C%0A-%3E%0A%uBAA8%uB4E0%20dll%uACFC%20exe%uB97C%20/MT%20%uB9C1%uD06C%uC635%uC158%uC73C%uB85C%21%0A%0A3.%20dll%uC744%20%uB9CC%uB4E4%uC5C8%uB294%uB370%20%uD638%uC2A4%uD2B8%uD504%uB85C%uC138%uC2A4%uAC00%20vs2005+mfc%20%uB97C%20%uC0AC%uC6A9%uD55C%20%uACBD%uC6B0%uB77C%uBA74%2C%0A-%3E%0ACString%3A%3AFormat%20%uC5D0%uC11C%20%uD06C%uB798%uC2DC%20%uB418%uB294%uC9C0%20%uD655%uC778%uD6C4%20sprintf%20%uB85C%20%uBCC0%uACBD%uD560%uAC83.%0A%60%60%60%0A%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%0A%23%23%20%uB514%uBC84%uAE45%20%uAFC0%uD301%28%3F%29%0A-%20virtualbox%20snapshot%0A%20%20%20%20-%20%uD0C0%uAC9Fos%uC758%20%uC0C1%uD0DC%uB97C%20%uB2E8%uACC4%uBCC4%uB85C%20%uC800%uC7A5%uD574%20%uB450%uACE0%20%uBC18%uBCF5%uC801%uC73C%uB85C%20%uD14C%uC2A4%uD2B8%20%uD560%20%uC218%20%uC788%uC74C.%0A%20%20%20%20-%20vcredist%2C%20kb%uC5C5%uB370%uC774%uD2B8%20%uB4F1%20%uD55C%uBC88%20%uC218%uD589%uD558%uBA74%20%uAE68%uB057%uD788%20%uC9C0%uC6CC%uC11C%20%uC7AC%20%uD14C%uC2A4%uD2B8%uD558%uAE30%20%uD798%uB4E0%20%uACBD%uC6B0%uAC00%20%uB9CE%uC740%uB370%20%uC544%uC8FC%20%uC694%uAE34%uD568.%0A%20%20%20%20-%20http%3A//swkim-linux.blogspot.com/2013/05/virtual-box-1.html%0A-%20Dependancy%20Walker%0A%20%20%20%20-%20%uC708%uB3C4%uC6B0%20%uAC1C%uBC1C%20%uD544%uC218%20%uC720%uD2F8%uB9AC%uD2F0%0A%20%20%20%20-%20%uC885%uC18D%uC131%uC774%20%uAE68%uC9C4%uB2E4%20%uC2F6%uC73C%uBA74%20%uC5EC%uAE30%uC11C%20%uBD80%uD130%20%uBD84%uC11D%uC2DC%uC791%21%0A%20%20%20%20-%20dependencywalker%20%uB2E4%uC6B4%uB85C%uB4DC%20%3A%20http%3A//www.dependencywalker.com/%0A%20%20%20%20-%20vc++%20%uC885%uC18D%uC131%uC758%20%uC774%uD574%20%3A%20https%3A//msdn.microsoft.com/ko-kr/library/ms235265.aspx%0A-%20DebugView%20+%20OutputDebugString%0A%20%20%20%20-%20%uBCC4%uB3C4%uC758%20%uD30C%uC77C%uB85C%20%uB85C%uADF8%20%uB0A8%uAE30%uAE30%20%uAC04%uB2E8%uCE58%20%uC54A%uAC70%uB098%20%uADC0%uCC2E%uC740%20%uC0C1%uD669%0A%20%20%20%20-%20%uD30C%uC77C%uB85C%20%uB85C%uADF8%uB97C%20%uB0A8%uAE30%uBA74%20%uD0C0%uAC9Fos%uC5D0%uC11C%20%uC27D%uAC8C%20%uC2E4%uC2DC%uAC04%20%uB85C%uADF8%uB97C%20%uD655%uC778%uD558%uAE30%20%uD798%uB4E0%uB370%20DebugView%20+%20OutputDebugString%20%uB85C%20%uC190%uC27D%uAC8C%20%uB428.%0A%20%20%20%20-%20%uCEE4%uB110%uB85C%20%uB85C%uADF8%uB97C%20%uBCF4%uB0B4%uB294%20OutputDebugString%20%uD568%uC218%20%3A%20https%3A//msdn.microsoft.com/ko-kr/library/windows/desktop/aa363362%28v%3Dvs.85%29.aspx%0A%20%20%20%20-%20debugview%20download%20%3A%20https%3A//technet.microsoft.com/en-us/sysinternals/debugview.aspx%0A-%20dll%20version%20resource%0A%20%20%20%20-%20%uAC1C%uBC1C%uC911%20%uD639%uC740%20%uC6B4%uC601%uC0C1%uD669%uC5D0%uC11C%20dll%20%uD30C%uC77C%uC744%20%uBC30%uD3EC%uD560%uB54C%20%uBC84%uC804%uAD00%uB9AC%20%uC6A9%uB3C4%uB85C%20%uC0AC%uC6A9%uD558%uBA74%20%uBA85%uD655%uD558%uACE0%20%uD3B8%uB9AC%uD568.%0A%20%20%20%20-%20%uC5EC%uB7EC%20%uC18D%uC131%uC911%20FileDescription%uC774%20%uBB38%uC790%uC5F4%uD56D%uBAA9%uC774%uB77C%20%uBC84%uC804%uBC88%uD638%20%uC774%uC678%uC5D0%uB3C4%20%uAC04%uB2E8%uD55C%20%uC124%uBA85%uB3C4%20%uD3EC%uD568%uD560%uC218%20%uC788%uC5B4%uC11C%20%uB354%20%uD3B8%uD568.%0A%20%20%20%20%20%20%20%20-%20%21%5B%5D%28http%3A//s18.postimg.org/9qbnnb3ft/screenshot_3.png%29%0A%20%20%20%20%20%20%20%20-%20%21%5B%5D%28http%3A//s18.postimg.org/w3jea44dl/screenshot_5.png%29%0A%20%20%20%20-%20MyWpfApp%uD300%uC740%20%uC368%uB4DC%uD30C%uD2F0%20%uAC1C%uBC1C%uC790%uC5D0%uAC8C%20%uBC30%uD3EC%uD560%uB54C%20%uC790%uB3D9%uC73C%uB85C%20%uB0A0%uC9DC%uC640%20%uC124%uBA85%uC774%20%uC785%uB825%uB418%uC5B4%20%uBE4C%uB4DC%uB418%uAC8C%20%uC2A4%uD06C%uB9BD%uD2B8%20%uB9CC%uB4E4%uC5B4%20%uB450%uC5C8%uC74C.%0A%0A%60%60%60powershell%0Awrite%20%22enter%20rcComment%20...%22%0A%24rcComment%20%3D%20Read-Host%20%22enter%20rcComment%22%0A%24rcContent%20%3D%20cat%20..%5CMyBridge%5CMyBridge.rc.template%0A%24rcContent%20%3D%20%24rcContent%20-replace%20%22%3CFileDescription/%3E%22%2C%20%28%22%7B0%7D%20%7B1%7D%22%20-f%20%28date%29.ToString%28%22yyMMdd-HHmmss%22%29%2C%20%24rcComment%29%0A%24rcContent%20%7C%20Set-Content%20..%5CMyBridge%5CMyBridge.rc%0A%60%60%60%0A%0A-%20%uCE74%uCE74%uC624%uD1A1%20%uB2E8%uD1A1%uBC29%20%uD30C%uC77C%uC804%uC1A1%0A%20%20%20%20-%20%uD0C0%uAC9Fpc%uC5D0%20%uCE74%uD1A1%uC124%uCE58%uD574%uC11C%20%uB514%uBC84%uAE45pc%uC640%20%uC11C%uB85C%20%uD30C%uC77C%2C%20url%2C%20%uB85C%uADF8%2C%20%uCEA1%uCCD0%uC774%uBBF8%uC9C0%20%uB4F1%20%uC8FC%uACE0%20%uBC1B%uC73C%uBA74%20%uB514%uBC84%uAE45%uACFC%uC815%uC744%20%uACF5%uC720%uD558%uAE30%uB3C4%20%uC88B%uACE0%20%uC774%uB825%uB3C4%20%uB0A8%uC544%uC11C%20%uC88B%uC74C.%0A%20%20%20%20-%20%uACC4%uC815%uC774%20%uD55C%uAC1C%20%uB354%20%uD544%uC694%uD55C%uAC83%uC774%20%uC57D%uAC04%20%uBB38%uC81C...%0A%0A%3Cbr/%3E%0A%3Cbr/%3E%0A%3Cbr/%3E

이 글은 Evernote에서 작성되었습니다. Evernote는 하나의 업무 공간입니다. Evernote를 다운로드하세요.

댓글