본문 바로가기

분류 전체보기

(596)
Telerik Winform에서 border의 색깔이 도저히 안 없어질때.. RadPanel 의 Border 색깔을 지우고 싶었는데 이짓 저짓 다 해보아도 사라지지 않았다. BorderThickness, BorderHightLightThickness, BorderColor, BorderHightLight 다 건드려봤지만 없어지지 않았다. 결국 찾은 방법은 RadPanel의 Telerik 속성에 들어간 다음, Element Hierarchy에서 BorderElement, 혹은 BorderPrimitive의 속성을 찾아서 ShouldPaint 속성을 false로 설정하여 해결하였다. 누군가가 나와 같은 고통을 받고 있다면 그 객체의 Hierarchy에서 수정할 수 있는 녀석들이 있는지 찾아보자.
Winform vs WPF (라 쓰고 WPF 짱 이라고 읽는다) 인터넷 서칭을 통해서 정리해본 Winform vs WPF 사실 거의 WPF로 마음이 기운다. winform 1. 폐기된 마차 2. 많은 문서 (WPF도 이젠 어느정도 쌓임...) 3. 배우기 쉽다 4. .NET 1.0 부터 지원 5. 버튼, 라벨등이 모두 Windows의 Window 객체 WPF 1. 훨씬 유연하다. (바인딩 메커니즘을 이용한 MVVM패턴 덕분) 유연성이 뛰어나 새 컨트롤 작성 없이 할 수 있는 것의 폭이 넓음 2. 럭셔리카 3. 생산성이 훨씬 높다. 4. 개발자와 디자이너가 시각적으로 뛰어나며 차별화된 사용자 환경을 만들 수 있게 해줌 5. 태그 언어인 XAML을 사용하므로 디자이너가 훨씬 더 쉽게 응용 프로그램을 빌드할 수 있음 => GUI를 만들거나 편집하기 쉽게 해줌 6. 레이아웃..
LNK2019 에러가 날 때.. LNK 는 링크 관련 에러이다. 보통 오브젝트 파일을 생성한 후 링킹을 시도하면서 특정 파일을 찾지 못하는 경우 발생한다. 문제를 해결하기 위해 Visual Studio 의 Project 를 마우스 우클릭 > Properties > 창 왼쪽 영역의 Configuration Properties > Linker > General 을 들어간 후 Additional Library Directories 에서 참조하는 파일을 추가하면 된다. 이 방법 말고 또 하나의 방법이 있는데, 바로 코드 상에서 #pragma comment(...)를 삽입하는 것이다. 나의 경우, A 프로젝트를 참고하여 B 프로젝트를 만들고 있었는데 분명 Additional Library Directories가 동일함에도 내 프로젝트 에서는 L..
DLL이 경로에 있음에도 DLLNotFound Exception이 뜬다면.. C# 프로그램에서 C++로 작성된 DLL 파일을 로드하려했는데(DllImport) DllNotFoundException 오류가 발생하였다. 찾아보니 C#에서 C++ DLL을 로드하기 위해선 1. C#의 빌드 형식과 C++ DLL의 빌드 형식이 맞아야 한다. 즉, x86이면 x86끼리, x64면 x64끼리 로드해야 한다는 얘기. 2. 같은 경로에 있어야 한다. 3. 함수 호출 스택 (cdecl 인지, stdcall 인지) 이 맞아야 한다. 즉, C++ DLL의 호출 스택이 cdecl이면 C# 에서도 cdecl로, stdcall 이면 stdcall로 받아주어야 한다. 4. C++ DLL에서 extern "C"를 선언해야 한다. 위와 같은 조건이 맞아야 한다. 위의 4가지를 다 해봤는데도 안되었다... 그러다..
EDITOR WARS #include #include #include #include using namespace std; struct NaiveDisjointSet { vector parent; NaiveDisjointSet(int n) : parent(n) { for (int i = 0; i < n; i++) parent[i] = i; } int find(int u) const { if (u == parent[u]) return u; return find(parent[u]); } void merge(int u, int v) { u = find(u); v = find(v); if (u == v) return; parent[u] = v; } }; struct OptimizedDisjointSet { vector parent,..
MEASURETIME (FENWICK TREE) #include #include using namespace std; struct FenwickTree { vector tree; FenwickTree(int n) : tree(n + 1) {} int sum(int pos) { ++pos; int ret = 0; while (pos > 0) { ret += tree[pos]; pos &= (pos - 1); } return ret; } void add(int pos, int val) { ++pos; while (pos > cn;..
MORDOR #include #include #include using namespace std; const int int_max = numeric_limits::max(); typedef struct DifficultyNode { int min, max; DifficultyNode() { min = int_max; max = 0; } DifficultyNode(int _min, int _max) : min(_min), max(_max) {} } DifficultyNode; typedef struct DifficultyQuery { vector querySource; int n; DifficultyQuery(vector &array){ n = array.size(); querySource.resize(n * 4); ..
RUNNINGMEDIAN #include #include #include using namespace std; typedef int KeyType; // 이 함수들은 문제 풀 때 쓰이진 않지만 (C++ STL 의 priority_queue를 대신 사용) // 기왕 구현했으니 넣어둠 void push_heap(vector &heap, KeyType key); void pop_heap(vector &heap); void swap(int *a, int *b); typedef struct Rng { int seed, a, b; Rng(int _a, int _b) : a(_a), b(_b) { seed = 1983; } int next() { int prevSeed = seed; seed = (seed * (long long)a + b)..