def파일에서 export 한 뒤, 함수 이름을 써주어야 하는데 이렇게 하기 귀찮다면 코드 안에서 pragma 키워드를 이용할 수 있다.

다음과 같이 에 export 시킬 함수를 적고 에 function의 mangled-name을 적어주면된다.
여기서 mangled-name을 구하는 방법이 있는데 보통은

1. 함수 이름 앞에 _를 붙인다.
2. 함수 이름 뒤에 @를 붙인다.
3. @뒤에 함수 인자의 총 바이트 수를 추가한다.

예를들어

int a(int arg1);


와 같은 구문이 있다면 a함수의 mangled-name은 _a@4 가 된다. 마찬가지로,

int a(int arg1, int arg2);


와 같은 함수는 _a@8이 된다.
이와 같이 <export>과 <function>을 결정한 뒤 다음과 같이 export 하면된다.

#pragma comment(linker, "/export:<export>=<function>")


P.S. 이 작업을 한 뒤 기존에 export하던 함수의 __declspec(dllexport)부분을 삭제해야 여기서 export한 함수 이름만 표시되는것을 볼 수 있다
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2007/06/30 11:53 2007/06/30 11:53
, , ,
Response
No Trackback , No Comment
RSS :
http://b4you.net/blog/rss/response/115


블로그 이미지

빗소리를 먹는 사람.

- 장현준

Notices

Archives

Authors

  1. 장현준

Recent Trackbacks

  1. 듀얼클러치의 생각 rsvin28's me2DAY 2009

Calendar

«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Site Stats

Total hits:
158002
Today:
72
Yesterday:
228