일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 안드로이드
- 디자이어HD
- 자료구조
- QTcpServer
- HTML
- 스타크래프트2
- vuejs
- Qt OpenGL
- 잡담
- 자바
- 윈도우7
- 오토바이
- 정성하
- 재귀함수
- 고속도로
- 스타2
- Java
- 알람프로그램
- 엑티브엑스
- 바이크
- QT
- qt 설치
- 양평역
- FFI
- 이륜차
- android SAF
- Qt 소켓프로그래밍
- 마영전
- c언어
- Qt4
- Today
- Total
목록프로그래밍 (174)
프로그래밍과 잡담
구글을 찾아봐도 내가 검색을 못하는건지 잘 안나오는거 같음. 내가 원하는건 컴포넌트의 값이 변경될 경우, 체크될 때 값을 체크해서 뭔가를 띄워주거나 하고 싶은건데 찾아도 watch를 검색하면 프로퍼티를 이용하는 방법만 나오더라. 그래서 대충 아무거나 해보던 와중에 발견한거임. 그냥 mounted 에서 this.$watch 함수를 이용해서 내가 원하는 데이터를 셋팅해주고 콜백 넣으니까 되더라 ㅋ 사실 제대로 이해하고 만든게 아니라 그냥 참조만 할것 template: '' data: function(){ return { data1 : "", Data: { name: "" } } }, mounted: function () { this.$watch('Data.name', function (newVal, old)..
template에 radio 버튼이나 checkbox 만들고 label for로 라벨클릭시 선택되게 할려고 할 때 아래처럼 해줘야 인덱스가 id에 들어감. 예제> nodejs에서 쓸 경우 i는 for문 변수 idx는 외부 변수 node.js에서 하면 편하다. 예제> node.js가 아닌 html에서 쓸 경우 template = ' \ \ \ \ ' 빨간색 작은따옴표( ' )는 template를 덮는 부분 파란색 \' 는 변수를 또는 추가로 붙일 문자에 넣음 보라색은 + 는 외부 변수 추가 용도 검은색 + 는 변수와 문자열을 연결하는 용도
ust는 다른 언어를 위한 인터페이스가 존재한다. 구조는 C 인터페이스를 사용한다. 그에 대한 사용법은 아래와 같다. Rust에서 선언 이렇게 하면 되고 // Rust에서 다른 언어로 넘길 때 사용하는 구조체 아래의 어노테이션을 써야한다. #[repr(C)] pub struct Data{ pub int_val : i32, pub double_val: f64, // 문자열 쓸려면 이렇게 해야함. pub str_val: *const c_char } // 이건 뭐 해도 되고 안해도 됨 impl Clone for Data{ fn clone(&self) -> Data { Data { int_val: self.int_val, double_val: self.double_val, str_val: self.str_val..
인터넷 찾아보면 WPF MVVM 패턴을 구현한 거보면 대부분 이해하기 쉽다. 근데 그 예제들은 이해하기 쉬우라고 쉽게 만들어 놓은거지만 실제 사용 할려면 여러가지가 짬뽕되서 사용해야한다는거지. 일단 나도 공부하는 중이라서 여기다 적어 놓는다. 유저컨트롤 - 유저컨트롤 간의 데이터 교환을 할려면 결국 인터페이스든 이벤트든 간에 연결이 필요하다. 컨트롤A가 있는데 이건 그냥 유저를 추가하는 기능 밖에 없음. 대충 아래와 같이 생김. xaml 코드 그리고 컨트롤 B는 컨트롤 A에서 추가한 유저 목록을 표시함. 소스는 아래와 같음. xaml 하는 일은 간단함. 컨트롤 A에서 유저를 입력하면 B에 추가되서 표시되는거지. 그러면 MainWindow에서는 아래와 같이 처리함. 소스는 그냥 제외 처리한다. 그냥 유저컨..
1. 사전 준비 작업 안드로이드 SDK 설치 안드로이드 NDK 설치 ( sdk 열어서 SDK_Tools 탭에 가면 ndk 설치하면 된다. ) Rust 설치 2. 빌드 셋팅 config 파일을 만들어서 에디터로 연다. 그리고 아래와 같이 셋팅 NDK 경로는 toolchains 라는 폴더가 있는 위치를 넣으면됨 예를들어 나같은 경우는 D:\Dev\android-sdk\ndk\21.3.6528147 이렇게 되어 있음 뒤에 exe, cmd 는 각자의 os에 맞춰서 바꾸면 된다. [target.aarch64-linux-android] ar = "[NDK경로]/toolchains/llvm/prebuilt/windows-x86_64/bin/aarch64-linux-android-ar.exe" linker = "[ND..
C#에서 Rust 에서 만든 메소드를 호출 하는데 예를 들어 아래와 같은걸 호출한다고 치자. // 문자열 배열을 받아서 문자열 배열을 반환하는 함수임. C#으로 따지면 string[] 이거임. // 근데 이걸 반환하기가 넘 어려움. fn foo(bar: &[*const c_char] ) -> &[*const c_char] 문제는 다른 언어에서 이걸 호출 하면 졸라 어렵다는거다. 왜냐하면 문자열 배열이란게 C언어로 치면 char** 이 거랑 비슷하다. 그러다보니 서로 통신하기가 아주 지랄맞아. 이건 Go 도 마찮가지다. 단순 문자열은 잘 가지만 문자열 배열이 들어가는 순간 지랄이 나는거야. 그냥 때려치우고 하나의 문자열로 만들어서 보낼려고 한다. 그리고 처리하는 쪽도 받은걸 잘라서 처리한 다음에 다시 하나..
C#에서는 Java의 final 과 같은 로컬변수를 고정하는 기능이 없다. 그래서 아래 처럼 제네릭 클래스를 만들어서 써야한다. 다만 이것도 단점이 있다. java의 final은 다시 new가 안돼지만 이건 new 하면 덮어 쓸 수 가 있다. 뭐 다만 이미 셋팅된 값을 변경 할려고 하면 에러나니까 그냥 대충 써야지 뭐. çlass Const { public T value { get; private set; } public Const(T data){ value = data; } }
Rust 언어는 프로그래머가 일일이 메모리 관리에 골머리를 쌓으면서 처리 안해도 돼는 좋은 언어이다. 게다가 성능도 C++와 비슷하거나 빠르다. 하지만 이 좋은 기능을 Rust 에서만 사용해서는 안됀다. C언어나 C++ 처럼 다른 언어에서도 사용 할 수 있어야, 그 언어의 진가가 발휘 할 수 있을 것이다. 왜냐 일반적으로 가비지 컬렉션을 사용하는 자바나 C# 또는 인터프리터 언어들(python, ruby 등등등)은 바이너리 언어 비해서 성능이 떨어지는 편이다. 요즘은 많이 좋아졌다고는 하지만 1분 1초가 중요하게 생각하는 분야에서는 여전히 C/C++이 대세이다. 당연하게도 rust에서는 이 기능을 제공하고 있다. 콘솔을 열고 아래와 비슷한 rust 프로젝트를 생성한다. $cargo new myfunc 그..
Rust 언어라고 있는데 최근에 나온 재미난 프로그래밍 언어이다. 모질라가 파이어폭스를 쓰고 있는데, 그 코드 중에 대부분이 C++이겠지.. 근데 이 C++이 지랄같은게, 포인터를 사용하면서 각종 패러다임을 사용하는 언어라는거지. 게다가 사람은 실수 하게 마련이고, 그 실수는 메모리릭을 일으킬 수 있고, free 한고 free하는 문제도 있고, free한 걸 사용하거나 등등등 포인터와 관련된 여러가지 상황이 일어나는 어려운 언어이다. 잘하는 사람은 졸라 잘하지만 못하는 사람은 졸라 못하는게 이 언어라서 제대로 만들기가 어렵다. 메모리릭은 뭐 그래 스마트포인터인가 지랄인가 사용하면 된다는데 결국은 사람이 조정해야함.. 위에 대한 이유때문에 파폭에 메모리릭이 일어나고 있었던 모양임. 그래서 그걸 해결하기 위..