C#,Delphi,Oracle,MSSQL 개발자블로그
* DLL에서 읽을 함수.(testMessage.dll) function MSG(s:string) : string; export; begin s := '[' + s + ']'; Result := s; end; 1. 핸들러를 이용하여 동적으로 사용하기. uses windows procedure TForm1.Button1Click(Sender: TObject); type TFunc = function(s:string) : string; var Handle : THandle; MyFunc : TFunc; begin Handle := LoadLibrary('testMessage.dll'); if Handle 0 then begin @MyFunc := GetProcAddress(Handle, 'MSG'); if ..
1. File -> New -> Other 에서 DLL Wizard를 선택한다. 2. 예제소스 uses SysUtils, Classes, Dialogs; {$R *.res} /// /// 문자열 반환 테스트 /// function MSG(s:string) : string; export; begin s := '[' + s + ']'; Result := s; end; /// /// 메세지박스 테스트 /// procedure MessageBoxBox; export; begin ShowMessage('message test'); end; exports MSG, MessageBoxBox; begin end.
앞선 글에 이어 WPF의 존재 이유를 좀더 따져보자. 간단할 것 같은(?) 어플리케이션을 한번 생각해 보자. '45도 기울어진 버튼을 가진 윈도우 기반 어플리케이션 만들기' 일단 WPF로 만든다고 하면 아주 쉽다. 메인 윈도우에 Button을 하나 올려두고, 그 Button의 RenderTransform 속성에 new RotateTransform(45)를 하게 되면 끝이다. 그러면 Button안의 Text도 기울어져서 나타나고, 마우스 클릭도 기울어진 버튼 영역에서만 반응한다. 그러면 WinForm으로 만든다고 해 보자. 메인 Form에 Button을 하나 올려놓는다. 그러나 Button의 속성을 살펴봐도 딱히 회전시켜 줄 만한 속성은 없다. 난감해지기 시작한다. WinForm의 컨트롤들은 모두 사각형이..