본문 바로가기

WPF 개발 ( C# )

WPF ( C#) 에서 VC++ 로 만든 DLL 호출하기 C++로 만든 DLL 파일명은 WebCrawling0.dll 로 한다 1. 구조체를 이용한 호출의 예 1.1 C++ 에서의 작업 1.1.1 구조체 선언 typedef struct Process_Struct_tag {int nCmd;char szParam1[512];//stringchar szParam2[512];//stringint nErrorCode;}Process_Struct, *PProcess_Struct; 1.1.2 dll 의 외부표출 함수 정의 (.def 파일을 사용해도 된다) //extern "C" __declspec(dllexport) int* ProcessControl_int(Process_Struct *ps);extern "C" __declspec(dllexport) char* Proce.. 더보기
WPF 타이틀바가 없는 윈도우창을 마우스로 끌고 다니기 (MFC의 HITTEST 사용 처럼) 1. xaml 에서 최상위에 있는 태그에 아래와 같은 2가지를 추가한다 WindowStyle="None" MouseDown="Window_MouseDown" WindowStyle="None" 은 타이틀바를 사용하지 않겠다는 것이고MouseDown="Window_MouseDown" 은 마우스 클릭을 하면 Window_MouseDown(object sender, MouseButtonEventArgs e) 함수를 호출하라는 것이다 2. xaml에 대응하는 .cs 소스내의 함수 private void Window_MouseDown(object sender, MouseButtonEventArgs e){if (e.ChangedButton == MouseButton.Left)DragMove();} DragMove().. 더보기
WPF 화면변경사항 즉시 업데이트 하는 방법 1) 함수를 하나 생성한다public void UpdateWindow(){// 화면 객체의 변경사항을 즉시 업데이트한다 System.Windows.Threading.Dispatcher.CurrentDispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Background, new System.Threading.ThreadStart(delegate { }));} 2) 프로그램상에서 필요할 때 호출한다 lcCollect.Items.Insert(0, "'WebCache' 문자열이 포함된 프로세스 표시");UpdateWindow(); CrawlDll.ProcessControl(ref ps);if (ps.nErrorCode != 0)MessageBox.Sh.. 더보기