분류없음2013.03.13 17:23

   

문제점

  1. Struct에 있는 값을 c#에서 사용하기 위해서는 ref class 또는 ref struct를 만들어야 된다.
    아직 사용법이 미숙하여 해당 변수의 값들을 일일이 복사하여야 한다.
  2. 배열로 선언된 부분을 C#에서 사용하기 위해서는 array<byte>^ 등과 같이 변경하여야 한다.
    1. 굉장히 불편함
  3. c 파일은 dll에 포함이 안되는 거 같다. cpp 파일로 변경하면 오케이
  4. Int32는 예약어로 사용이 불가능 하다. (ATPW 개발 시 사용한 SW_NORMAL도 예약어
  5. win32파일을 변경하면서 개발하기에는 디버깅이 c++ Cli쪽에서 win32쪽에 붙지 않는다.. 아마 해당 내용은 더 확인이 필요하겠지만

       

   

NICanLIB에는 event, delegate 등의 기능도 구현되어 있음.

   

   

   

  1. vs2012에서 WIN32 프로젝트를 이용하여 기존의 c 파일을 컴파일
  2. c++ cli에서 사용할 함수 또는 변수는 WIN32PROJECT1_API를 붙인다.
  3. C++ CLI프로젝트에서 해당 프로젝트를 reference

       

  4. h파일들은 link를 통하여 폴더에 넣고, 해당 프로젝트(win32)의 header 파일의 위치를 추가한다.
  5. 아래와 같이 pragma를 사용하여 해당 header 파일들을 include 한다.

// ClassLibrary1.h

 

#pragma once

 

using namespace System;

using namespace System::Diagnostics;

using namespace System::Runtime::InteropServices;

 

 

#pragma managed(push, off)

 

#include "Win32Project1.h"

#include "define.h"

#include "initStruct.h"

 

#pragma managed(pop)

6. 실제 사용하는 winform 프로그램에서는 C++ CLI의 DLL만 복사하기 때문에 win32의 dll도 복사하여야한다. 쉽게 하는 법은 dll을 winform 프로젝트에서 link로 파일 등록하고, 해당 파일의 속성에서 항상 복사로 하면 된다.

  

  

   

신고
Posted by Frys

티스토리 툴바