'managed c++'에 해당되는 글 2건

  1. 2010.07.21 Managed C++에서 System.BadImageFormatException 에러 1
  2. 2010.03.19 __gc keyword 1
C++2010. 7. 21. 18:25

#. 에러 메시지.
  System.BadImageFormatException이(가) 처리되지 않았습니다. Message="파일이나 어셈블리 'D2net.Common, Version=1.4.4.29, Culture=neutral, PublicKeyToken=null' 또는 여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 프로그램을 잘못된 형식으로 로드하려고 했습니다."

  Source="IngestTestApp"

  FileName="D2net.Common, Version=1.4.4.29, Culture=neutral, PublicKeyToken=null"

  FusionLog="=== 미리 바인딩된 상태 정보 ===\r\n로그: 사용자 = IRONTOOTH\\irontooth\r\n로그: DisplayName = D2net.Common, Version=1.4.4.29, Culture=neutral, PublicKeyToken=null\n (Fully-specified)\r\n로그: Appbase = file:///E:/D2NET/DevApp_irontooth/IngestTestApp/IngestTestApp/bin/Debug/\r\n로그: 초기 PrivatePath = NULL\r\n호출 어셈블리: IngestTestApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.\r\n===\r\n로그: 이 바인딩은 default 로드 컨텍스트에서 시작됩니다.\r\n로그: 응용 프로그램 구성 파일이 없습니다.\r\n로그: C:\\WINDOWS\\Microsoft.NET\\Framework\\v2.0.50727\\config\\machine.config에서 컴퓨터 구성 파일을 사용합니다.\r\n로그: 참조에 정책이 지금 적용되지 않습니다(전용, 사용자 지정, 부분, 위치 기반 어셈블리 바인딩).\r\n로그: 새 URL file:///E:/D2NET/DevApp_irontooth/IngestTestApp/IngestTestApp/bin/Debug/D2net.Common.DLL을(를) 다운로드합니다.\r\n오류: 어셈블리 설치를 완료하지 못했습니다(hr = 0x8007000b). 검색이 종료됩니다.\r\n"

  StackTrace:

       위치: IngestTestApp.IngestTestAppForm.ProcessProc()

       위치: System.Threading.ThreadHelper.ThreadStart_Context(Object state)

       위치: System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

       위치: System.Threading.ThreadHelper.ThreadStart()

#. 원인.
  위와 같은 에러가 발생하여 이너넷 서핑을 한 결과 개발 환경의 플랫폼 설정을 managed C++과 C#이 동일해야 한다는 것을 알게 되었다.

#. 조치.
1. [구성 관리자]를 클릭한다.


2. 아래처럼 다른 플랫폼을 동일한 플랫폼으로 맞춰 준다.


Posted by 쿵캉켕
C++2010. 3. 19. 11:35

#. .NET이 출시 되기 전에 VC++은 Unmanaged type의 코드로만 작성되었고, .NET 기반인 C#의 경우는 managed type의 코드로만 작성 됩니다. 하지만 Visual Studio.NET에서 VC++로 프로그래밍 할 경우 프로그래머가 선택에 따라 managed type과 unmanaged type으로 프로그래밍할 수 있습니다.

#. __gc는 VC++로 프로그램 작성 시 managed type의 코드를 작성할 때 사용하는 키워드 입니다. 기본적으로 managed type은 garbage collector에 의해 자동으로 메모리가 수거되는데 클래스 선언 앞부분에 __gc를 붙이면 managed type으로 클래스를 선언하게 됩니다.

Posted by 쿵캉켕