smleelms 님 이제 거의 끝났다고 봐도 될 것 같습니다. ShowMessage는 저는 잘 사용하지 않습니다.
DLL 아니라도 한번씩 앞으로 안나타날때가 있어서.. MessageBox()를 사용합니다.
*.lib를 사용해서 하는 것 물론 자동화 만들면 되겠지만 더 복잡해 보입니다......
임프님의 글이 절대적인 도움을 받았습니다.....
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=45
저금 더 연구해서 VC++에서 DLL 사용하는 방법 양쪽 사이트에 올려야 겠습니다.....
지금 기분 아주 좋습니다.
속성도 관련이 있나 했는데 그렇게 큰 영향은 끼치지 않는 것 같은데....
시간날때 마다 조금 연구해 봐야 할 것 같습니다.
그리고 VC++에서 프로그램 한 것을 보면 Dialog라도 메세지, 함수 뿐 아니라 변수까지,... 막 섞어서
사용합니다.. 물론 다이나믹하게 동작하겠지요.... 이런 경우를 피해야 하는데
시간에 쫓기고 ... 이유로 해서 ....우가 발생한다는 것입니다.
여기에 대한 연구가 더 필요할 것 같습니다. 지금 바빠서.....
이런 작은 노가다도 하지 않고 잘 되면 얼마나 좋을까?
아참 그리고 함수를 호출할 때 HWND를 넘기고 함수 안에서 Form를 호출했는데...
이때 생성자 Form()에 HWND를 넘기고 Form의 변수에 두고 CreateParam에서 그 변수를 대입했는데...
ㅋㅋㅋ 값이 전달되지 않았습니다. 그래서 메세지 박스를 띄워 보았는데....
CreateParams 쪽의 박스가 먼저 뜨고 그 다음 생성자의 박스가 떴습니다.
허참 이상도 해서.,... 그래도 그렇게 동작하니까? VC에서 함수에 HWND를 넘기고
DLL에서는 외부변수에 저장했다가 CreateParams에 바로 붙혔더니 동작 잘합니다.
그리고 VC++에서 HWND를 넘길 때는 AfxGetMainWnd()->m_hWnd를 넘기시기를......
그럼 ...... 물러갑니다.................
아래는 속성 알아본다고.... SPY에서 알아낸 것인데..... 그냥 나열해 두었습니다.
----------------------
VC++ DLL DialogBox
WS_VISIBLE
WS_CLIPSIBLINGS
WS_OVERLAPPED
WS_POPUPWINDOW
WS_DLGFRAME
DS_3DLOOK
DS_SETFONT
DS_MODALFRAME
WS_EX_LEFT
WS_EX_LTRREADING
WS_EX_WINDOWEDGE
WS_EX_DLGMODALFRAME
WS_EX_CONTROLPARENT
=====================
VCL DLL Form
WS_VISIBLE
WS_CLIPSIBLINGS
WS_OVERLAPPED
WS_OVERLAPPEDWINDOW
WS_CLIPCHILDREN
WS_EX_LEFT
WS_EX_LTRREADING
WS_EX_WINDOWEDGE
WS_EX_RIGHTSCROLLBAR