1.다음과 같이 DLL을 로딩하여 DLL내의 함수를 호출하는 코드를 작성합니다.

    public class FileFilter
    {
        [DllImport("EurekaFilter.dll", CharSet = CharSet.Auto)]
        public static extern bool Doc2Txt(
            byte[] filename
            );

        public FileFilter()
        {
        }

         public string GetTextByFile(string filePath)
        {
            string s = "";

            byte[] FilePathByte = new byte[filePath.Length * 2 + 10];
            FilePathByte = Encoding.Default.GetBytes(filePath);
            string[] ext = filePath.Split('.');
            Doc2Txt(FilePathByte);     // DLL내의 함수를 닷넷처럼 호출한다.

            .....
        }
    }

2. 로딩할 DLL을 서버에 폴더를 만들어 복사하여 놓는다.
   (주의 : C++, C는 DLL이 동작하기 위해서 다른 참조 DLL이 필요한 경우가 대부분임.(mfc.dll 등) 이 DLL로 함께 복사할 것)

3. 만들어진 폴더을 다음과 같이 코딩 하여 환경 변수에 추가한다.

   // global.asax파일에서 코딩을 한다.

    void Application_Start(object sender, EventArgs e)
    {
        // 응용 프로그램이 시작될 때 실행되는 코드입니다.
        String _path = String.Concat(System.Environment.GetEnvironmentVariable("PATH"), ";", @"D:\CPlusDll");
        System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
    }

4. 첨부내역(샘플)
- 첨부파일에서 텍스트만 추출하는 방법(샘플코드) : FileFilter.cs
- 참조하는 파일 : 사이냅 필터.zip
- MFC참조파일 : mfcDLL.zip
- 2개의 zip파일은 컴파일시 필요로 하지 않음.
  (단, 동작시 같은 디렉토리에 있거나 위 3번에서 설정한 디렉토리에 존재해야 함.)

'temp' 카테고리의 다른 글

이 애플리케이션은 특정 OS에서도 돌아가나요?  (0) 2010.06.08
jquery  (0) 2010.06.08
블로그 이미지

란마12

,