Programming/C#

Programming/C#

[C#] App & Library Platform Taget 설정

1. 개요 대부분의 프로젝트는 혼자서 만든 Application 프로젝트만 사용하는 것이 아니라 외부 참조를 사용하는 경우가 많다. 이 것이 .Net 프로젝트만 사용하면 모르겠지만 C++ native dll 파일을 참조하는 경우에는 더욱더 Platform Target 설정에 어려움을 겪을 때가 있다. 이런 상황들에 대해서 정리를 한다. 2. .Net Platform Traget 의 종류 .Net 프로젝트의 경우 Build 옵션을 보면 Platform Target을 지정하는 것이 있다. 이는 해당 프로젝트가 어떤 운영체에서 사용되기 위한 것인지를 지정하는 것이다. x86과 x64의 경우는 설정이 매우 명확하다. 하지만 Any CPU?? 이것이 바로 궁금한 내용이다. 프로그램을 개발할 때에 모든 운영체제를 ..

Programming/C#

Selenium 유용 코드

JQuery 추가하기 var script = document.createElement("script"); script.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"; document.getElementsByTagName("head")[0].appendChild(script); JQuery 실행 using OpenQA.Selenium; using OpenQA.Selenium.Chrome; IWebDriver driver = new ChromeDriver(); driver.Navigate().GoToUrl("http://www.example.com"); IWebElement element = (IWebElement) driv..

Programming/C#

[C# / Activiz] Array & Unmanaged IntPtr 변환

VTK Activiz 를 활용하면서 함수의 매개변수 정보가 Array 값을 갖을 때 각index 값을 따로 입력하는 방식과 IntPtr 를 전달하는 방식으로 API를 제공하고 있다. 나는 index별 매개변수를 전달하는 것을 매우 귀찮아 하기 때문에 IntPtr 로 전달하려고 했고.. 그런 부분을 해결하기 위해 구성한 코드를 정리한다. 1. GCHandle based ToIntPtr GCHandle 을 이용하여 입력받은 array 값의 메모리를 Pinned 로 지정하여 해당 메모리의 값에 대한 GCHandle 을 생성한다. Handle 은 Target의 변수 값과 메모리 값을 관리하게 되며, 필요한 IntPtr 값을 얻은 뒤에는 Handle을 free 메모리해제하여 사용하면 된다. public stati..

Programming/C#

WPF XMAL Lifecycle & Binding 하기

WPF 의 xmal 을 rendering 할 때 객체들이 생성되고 loading 되는 lifecycle 을 정리한다. WPF에서는 Xaml Designer에서 control의 instance 를 정의하고 이를 running 시에 LoadComponent 를 통해서 로드하여 화면에 출력한다. 또한 Xaml에서 MVVM을 위한 binding 을 정의할 때 중요한 것은 DataContext 이다. 아직 잘 모르는 부분이 Binding의 source를 정의하는 것인데.. UserControl을 구현할 때에 DataContext를 Locator에서 정의하지 않고 control의 각각의 instance에 정의를 하기 위해서 찾은 방법을 나의 기준으로 xmal 구현 방법과 behind code 구현 방법으로 비교하여..

Programming/C#

C# String Formatter

Format Specifiers Here is a quick reference to all the conversion specifiers supported. Number Formats CHARACTERDESCRIPTIONUSAGEEXAMPLE c Currency {0:c} $ 55,674.74 e Scientific {0:e} 5.567474e+004 f Fixed point {0:f} 55674.74 g General {0:g} 55674.73789621 n Thousand Separator {0:n} 55,674.74 Custom Formats CHARACTERDESCRIPTIONUSAGEEXAMPLE 0 Zero Placeholder {0:00.00} 55674.74 # Digit Placehold..

Programming/C#

SynchronyzationContext vs Dispatcher vs Taskscheduler

참고 URL : https://stackoverflow.com/a/50672299 Difference between Synchronization Context and Dispatcher I am using Dispatcher to switch to UI thread from external like this Application.Current.Dispatcher.Invoke(myAction); But I saw on some forums people have advised to use SynchronizationContext in... stackoverflow.com

Programming/C#

[WPF] Binding Property in Code

View 의 Property 를 ViewModel 에 binding 할 때 Code 에서 직접 binding 하는 방법 public static readonly DependencyProperty SliceOffsetDependency = DependencyProperty.Register("SliceOffset", typeof(int), typeof(DicomView), new PropertyMetadata(10, OnSliceChanged)); private static void OnSliceChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { DicomView view = (DicomView)source; int newData..

Programming/C#

WPF Binding DependencyObject

View Control의 Property를 외부에서 Binding 하기 위해서는 DependencyObject 를 등록해야한다. DependencyObject는 Control에 종속되어 있는 데이터 값이 아니라 Control 외부에 있는 데이터 저장소에 있는 값을 말한다. 이유는 View의 객체에 종속되어 있는 객체를 참조하기 보다는 binding 할 때는 여러 객체와의 데이터를 연결하기 위해서 외부 저장소에 있는 메모리를 참조하여 각자 상태를 업데이트하는 것이 효율적이기 때문인 것 같다. 그러므로 Control의 Property 를 Binding 하기 위해서 아래와 같이 DependencyObject에 등록을 한다. 이렇게 등록된 Property 의 Get,Set 은 실제로 코드 단계에서는 동작하지 않..

Programming/C#

해피머니 상품권 자동입력기

해피머니 기프트 자동충전 프로그램 만들기.. 웹개발은 전혀 해본적이 없는 상태에서 최근 급격한 취미적 관심을 갖던 중에 만들어봄.. GitHub 으로 공개를 했으며 여기에서도 다운로드 가능함~ 프로그램만 필요하신 분은 여기에서 다운로드 가능하며, 소프트웨어 개발에 참여를 원하는 분은 GitHub을 참고해주세요. GitHub : https://github.com/richardbang83/GiftACBrowser richardbang83/GiftACBrowser Macro browser system to input codes automatically. - richardbang83/GiftACBrowser github.com Gift Automatic Charging Browser 해피머니 상품권을 자동으로 ..

Programming/C#

Form 모니터 위치 변경하기.

방법 1. protected void Form1_OnLoad(...) { showOnMonitor(1); } private void showOnMonitor(int showOnMonitor) { Screen[] sc; sc = Screen.AllScreens; if (showOnMonitor >= sc.Length) { showOnMonitor = 0; } this.StartPosition = FormStartPosition.Manual; this.Location = new Point(sc[showOnMonitor].Bounds.Left, sc[showOnMonitor].Bounds.Top); // If you intend the form to be maximized, change it to normal..

RichardBang
'Programming/C#' 카테고리의 글 목록 (2 Page)