|
GradientFill() 이나,
기타 알파 블렌딩 관련 API들은
Win98이나 Win2000 이후에 추가된 것들이며,
실행 역시 이것들에 한정되어 실행됩니다.
이런 종류의 API는 델파이나 BCB에 제대로 포함되어 있질 않더군요.
꼭 써야만 하겠다면,
조금 번거로운 과정을 거쳐서 쓸 수는 있습니다.
MSDN이 있다면 좋겠는데...
어쨌든 이것을 뒤져 보면,
GradientFill()이 MSIMG32.DLL에 들어 있다는 것을 알 수 있습니다.
이 파일은 system32나 system 폴더에 들어 있겠죠.
여기 가서,
import 라이브러리를 생성합니다.
c:\windows\system> implib msimg32.lib msimg32.dll
이렇게 하면 msimg32.lib 파일이 생성됩니다.
이것을 빌더 폴더나, 아니면 개발중인 프로젝트가 있는 곳으로 복사해 넣습니다.
그리고 프로젝트의 Add 를 이용해 이 .lib 파일을 추가하면 됩니다.
이런 식으로,
비표준 API나, 윈도우의 버전 특성을 타는 API,
익스플로러의 버전 특성을 타는 API 들은
모두 같은 방법으로 사용할 수 있습니다.
물론,
이 결과 생기는 버전 특성은 감수할 수밖에 없겠죠.
적어도 이 문제에 한해서는 VC도 별 수 없습니다.
VC로 개발된 프로젝트가 특정 익스플로러 버전에서만
제대로 돌아가는 경우는 허다하게 봐서 말이죠.
박남영 님이 쓰신 글 :
:
:
: 안녕 하세요 ~~
:
: 모두들 평안 하신가요 ^^
:
: 질문이 있답니다 API중에서 GradientFill함수 써보신 분 계신가요
:
: 이 함수는 좌측과 우측에 각각의 색을 지정하면 두개의 색깔을 위치에 따라
:
: 섞어서 화면을 칠해주는 함수랍니다
:
: 헌데 어찌된게
:
: 빌더에서 링크를 시키지 못하네요
:
: Obj와 tds파일 지워보고 또 옵션 부분에 패스를 손 봐도 여전히 접근할수 없다는
:
: 링크 에러가 뜨는군요
:
: wingdi.h 파일에 정의된 다른 API함수는 링크 시키면서
:
: 저 함수만 링크못 시키는 이유 아시는 계신가 해서요?
:
: 사용해 보신 분 계시면 좀 부탁 드립니다 그럼 수고 하세요~~
:
:
|