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 |