본문 바로가기

VisualStudio.C++.C#   ( 290 )


MFC . CView . CDC TextOutW 문자열 출력. MFC . CView 문자열 출력 CDC* pDC = GetDC(); pDC->TextOutW(100,100,_T("Hello CView")); //인자 x,y. 좌표원점 : CView 의 좌상단 ReleaseDC(pDC); // 필수 해제 처리해야함. /// 혹은 CClientDC 이용해도 됨. CClientDC dc(this); dc.TextOutW(100, 100, _T("Hello CView")); 첫 등록 : 2023.12.03 최종 수정 : 단축 주소 : https://igotit.tistory.com/5040 2023. 12. 3.
C/C++ . 부호 있는 정수 singed int . 음수 표현 규격 . 2's complement signed int 최상위 바이트 메모리 표현 규격 int8_t , int32_t , int64_t 등에서 음수 양수를 메모리에 표현하는 규격 양수 : 최상위 바이트의 최상위 비트 = 0 음수 : 최상위 바이트의 최상위 비트 = 1 singned int 의 최상위 바이트 비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0 1 : 음수 0 : 양수 연관 각종 AD 변환 칩들의 변환 포맷이 2's complement 가 많다. AD 변환값을 signed int 형으로 받아서 활용하면 된다. ADS1285 . 32비트 ADC ADS1285 ADC는 저잡음 정밀 디지털화 및 확장된 배터리 실행 시간이 필요한 지진학 장비의 까다로운 요구 사항을 위해 설계되었습니다. 저잡음 PGA를 사용하면 외.. 2023. 8. 27.
C/C++ . volatile 변수 volatile 변수 선언 형식. volatile uint8_t ui8_v; // 변수 ui8_v 가 volatile 이 됨. uint8_t volatile ui8_v 로 해도 동일하나 일관되게 volatile 을 가장먼저 기록해 volatile uint8_t * pui8_v; // 포인터 변수 pui8_v 의 대상이 volatile 이 됨. uint8_t * volatile pui8_v; // 포인터 변수 pui8_v 자체가 volatile 이 됨. volatile uint8_t * volatile pui8_v; // 포인터 변수 pui8_v 자체와 pui8_v의 대상 모두 volatile 이 됨. volatile 변수 선언 의미 - volatile 로 선언된 변수들은 컴파일러가 최적화 하지 않는다. .. 2023. 3. 10.
Visual Studio 2022. Installer Projects 2022 설치. Microsoft Visual Studio Installer Projects 2022 - Visual Studio 2022. 에서 설치파일 ( setup.exe / .msi) 제작 가능한 확장 툴. 설치 방법. Visual Studio 2022 설치된 상태에서 실행하여 메뉴 중에 Extensions -> Manage Extensions 클릭하여 뜬 창(아래 그림 파란 박스) 에서 왼쪽 Online 선택하고, 검색어 install 로 보이는 것 중 Microsoft Visual Studio Installer Project.. 을 선택하고 .. 위 화면의 버튼 Download 클릭한 후 Visual Studio 종료 하면 자동으로 아래 화면 처럼 설치 진행된다. 설치 완료이후 , VS2022 에서 새프로젝트.. 2022. 4. 26.
CEvent . Lock() . SetEvent() . ResetEvent() CEvent 생성자 CEvent( BOOL bInitiallyOwn = FALSE, BOOL bManualReset = FALSE, LPCTSTR lpszName = NULL, LPSECURITY_ATTRIBUTES lpsaAttribute = NULL); 2번 인자 bManualReset - TRUE : ResetEvent() 호출해야 이벤트가 Reset 상태로 됨. - FALSE : SetEvent() 호출이후 ResetEvent() 호출하지 않아도 자동으로 Reset 상태로 됨. 헤더파일 : afxmt.h 코드예. #include // 무인자로 생성하는 경우, 2번인자 기본 FALSE 적용된다. // SetEvent() 호출하여 대기해제이후 ResetEvent()별도 // 호출하지 않아도 셀프 Re.. 2022. 4. 9.
MFC. CTreeCtrl. Tree Control . 트리 컨트롤 사용법. 개요. VC++ 에서 Tree Control사용법 정리. 기본 활용법. 1. 도구상자에서 Tree Control 을 대화상자에 배치하고 Tree Control 의 속성창에서 ID를 적절한것으로 설정. 2. 클래스 위저드 실행하여 멤버 변수추가. 예: m_TreeNXTask 3. Tree Control 속성의 Has Button과 Has Lines 속성을 모두 True 로 하기. 4. 트리에 아이템 추가하기 위한 트리컨트롤 멤버 함수 InsertItem (, , ,) 호출한다. 상세. - 기본 활용법. 앞의 순서대로 각 단계별 이미지와 함깨 설명한다. 1. 도구상자에서 Tree Control 을 대화상자에 배치하고 Tree Control 의 속성창에서 ID를 적절한것으로 설정. 2. 클래스 위저드 실행하여.. 2022. 4. 4.
MFC. menu, context menu MFC 컨텍스트 메뉴 만들기 1. 리소스에서 메뉴 추가. 예: IDR_MENU_3DCHART 2. 메뉴보이게 하기. - 아래 함수 호출되면 마우스커서가 메뉴의 좌 상단 꼭지점에 배치된 상태로 보인다. int CCyChartView::Show_Menu3dChart() { CMenu menu, *pSubMenu; if (!menu.LoadMenuW(IDR_MENU_3DCHART)) return 0; if (!(pSubMenu = menu.GetSubMenu(0))) return 0; CPoint pos; GetCursorPos(&pos); SetForegroundWindow(); // 메뉴출력 pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_TOPALIGN, pos.x, po.. 2022. 4. 4.
win api. Cryptography API : Next Generation. 암호화. 복호화. Cryptography API: Next Generation (CNG) - 이전 windows api 중 Crypto API 로 불렸던 CryptEncrypt, CryptDecrypt ,, (헤더파일 : wincrypt.h ) 들은 폐기되고 Cryptography API 로 대치됨. 이번 버전의 것과 차별성을 강조하려고 Next Generation 이라고 부르고 간략하게 CNG 로 표기. - 헤더파일 : bcrypt.h - dll 파일명 : bcrypt.dll MS 제공 Cryptography API 설명. 암호화 API: 차세대 - Win32 apps CNG는 암호화 키 관리, 암호화 및 데이터 보안, 암호화 및 네트워크 보안에 대한 암호화 보안 소프트웨어를 만드는 데 사용할 수 있는 암호화 API입니.. 2022. 4. 4.
VC++ . _CRT_SECURE_NO_WARNINGS . #pragma warning(disable: 4996) 오류가 아닌데 VC++ 컴파일 오류 나는 상황 VC++ 에서 컴파일 결과 아래 에러 리스트에 이 함수는 안전하지 않다. 다른 함수 사용해라. 이 경고 안나오게 할려면 _CRT_SECURE_NO_WARNINGS 추가하라는 문구 보이는 경우 해결책 통상 scanf 등 과 같은 함수 사용하려 할 때 상기와 같은 오류 보여주며, 대안으로 다른 함수 사용하라고 제시해주는함수를 보면 구질구질 하기 짝이 없는 경우가 많다. 제시해준 함수를 사용해도 되고 아래처럼 코드에 기록해두면 C4996 은 오류로 처리하지 않고 정상적으로 컴파일 가능. #pragma warning(disable: 4996) 첫 등록 : 2022.03.07 최종 수정 : 단축 주소 : https://igotit.tistory.com/3532 2022. 3. 7.
MFC . 응답없음 해결책 . PeekMessage , DispatchMessage 응답없음 MFC 대화상자든 일반 응용프로그램이든 처리량이 많은 것을 루프문에서 실행시 해당 처리가 완료되기 전까지는 사용자 마우스 입력 키보드 입력등이 처리되지 못하고 먹통처럼 보이고 프로그램 타이틀에 응답없음 이라는 표시가 보인다. 해결방법. 처리 루프 안에 PeekMessage 로 메시지 여부 점검하여 처리할것 있다면 UI 관련 처리도 수행하도록 한다. void function_processing() { for(,,,){ Forced_MessageHandler(); // 이것 호출되면 마우스, 키보드 입력등의 처리 수행됨. //처리할것들.이것저것 } } void Forced_MessageHandler() { MSG msg; // GetMessage 는 메시지 수신될때까지 대기 하기 때문에 무한대기에 .. 2022. 3. 5.
C++ . namespace . 네임스페이스 내부에 선언하여 네임스페이스로 분리 식별 가능한것 : 변수, 함수, 클래스등. 네임스페이스로 분리 식별 안되는것 : #define 문. // 네임스페이스 정의. 헤더 파일등. namespace my_namespace { int a_int; void function(){ } namespace my_ns2{ // 네임스페이스 내부에 네임스페이스 추가 가능. int a_int; // 앞의 my_namespace 의 a_int 와 다르게 취급됨. }//namespace my_ns2 } // namespace my_namespace // 활용하는곳. my_namespace::a_int = 100; // 네임스페이스:: 으로 접근 가능. my_namespace::my_ns2::a_int = 200; u.. 2022. 3. 1.
std::string . 검색, 비교 , 추출 , 지우기 . find compare substr erase find, rfind ,front , back #include std::string my_str = "my string is bla bla bla .? ! . . end"; // 반환값. my_str 에서 인자".?" 를 찾아서 . 이 있는 곳의 인덱스 반환. // 인자로 전달한 문자가 my_str 에 없는 경우 std::npos 반환. int idx_find = my_str.find(".?"); // 25 반환됨. // 뒤에서 부터 검색 rfind int idx_find = my_str.rfind(">"); //뒤에서 부터 첫번째 찾은 > 의 인덱스 반환됨. /// rfind, find 모두 검색결과 없는 경우 std::string::npos 반환. if(my_str.find(",,,") == std:.. 2022. 2. 24.
Rapid Json . 체크 함수들 . /// RapidJson 체크 함수들. .HasMember("키이름"); // 키이름의 항목이 있는지 확인. .IsObject(); // object 인지 확인. .IsNull();// nul 인지 확인. .IsString(); // 문자열인지 확인. .IsBool(); // bool 인지 확인. .IsNumber(); // 숫자인지 확인. .IsInt(); // 정수인지 확인. .IsDouble(); // double 인지 확인. 첫 등록 : 2022.02.23 최종 수정 : 단축 주소 : https://igotit.tistory.com/3512 2022. 2. 23.
std::string . 숫자 . stoi, stof, stol,stod, to_string std::string 을 숫자로 stoi, stof, stol , stod : std::string 을 int, float, long, double 로 간단 변환. 주의 : stoi 같은 경우 최대 10자리 정수까지만 변환된다. // C++11 부터. #include std::string my_str_i = "12345"; std::string my_str_i2 = "1234567890123456"; int i = std::stoi(my_str_i); // 정수로. base 지정하지 않으면 최대 10자리까지 정수변환. int64_t = std::stoi(my_str_i2); //주의 : 문자열 앞에서 부터 10개만 숫자로 변환됨. 숫자를 std::string 으로 to_string() #include i.. 2022. 2. 23.
MFC . AfxMessageBox . 문자열 표현 못하는 경우 있음 상황. 아래코드의 마지막 처럼 CString 의 문자열 사이즈 확인하면 48000 이상인데, AfxMessageBox 창에선 아무 문자도 안보이는 증상 . 원인 문자열 길이가 너무 긴 경우 표현 못함. 수량 변경하면서 확인결과 사이즈 40000 까지는 표현가능. 45000 은 표현 못했음. int CCyRestBybit_SPOT::Acquire_Symbol_All(CString cfs_id_market, CCyD_CyFinSymbol::Symbols* p_ccyd_symbol) { std::string url = "https://api.bybit.com/spot/v1/symbols"; std::string result; m_CCyLibCurlOpenSSL.https_get(url, &result); CS.. 2022. 2. 23.
C# . Process . Kill , CloseMainWindow , Close , Exited C# Process Namespace:System.Diagnostics Kill() 대상 프로세스 즉시 중지 시킨다. 하위 프로세스는 중지 안됨. Kill(Boolean) 프로세스를 즉시 중지하고, 선택적으로 자식/하위 프로제스 중지. kill(true); 로 호출하면 프로세스 하위의 모든 프로세스 들도 모두 중지 됨. CloseMainWindow() main wnindow 로 종료하라는 메시지 송신만 하는것. 대상 프로세스가 윈도우를 갖고 있어야 본 함수 사용가능. 메시지 수신한 main window 가 종료 메시지 수신시 종료처리 안해도 되는 선택권 있음. 또한 main window 가 종료전 저장해야할 데이터등이 있다면 저장완료하고 종료해주는 식의 처리 가능. 반면, Kill 은 대상 프로세스가 종.. 2022. 2. 8.
VS . bug .MFC. RC : fatal error RC1107: invalid usage; use RC /? for 해결책. 오류 증상. - VC++ (버전 2022 등 전체 버전에서 유사하게 발생하는듯) 코딩 하는 중에 아래와 같은 얄궂은 구문의 오류창 뜨면서, MFC 프로젝트의 리소스 에 접근이 안되고 x 박스 뜸. RC : fatal error RC1107: invalid usage; use RC /? for 해결책 - 해결책은 간단. 프로젝트 설정에서 VC++ Directory 나 Library Directory 에 신규 추가했던 경로의 마지막에 슬래시 \ 부착해뒀다면 슬래시 제거. \ 부착하지도 않았는데 위의 오류 증상 생겼다면 최근 신규 추가했던 경로의 마지막에 슬래시 \ 추가. 위 조치하고 Visual Studio 닫았다가 다시 열면 MFC 프로젝트에서 리소스에 정상 접근 가능. from https://stacko.. 2022. 2. 3.
win api . WinHTTP . http clinet api . C/C++ WinHTTP C/C++ windows API 개요 - 윈도우 운영체제에 기본 포함된 C/C++ API . 파일명 : winhttp.dll - 윈도우 8 이후 부터 웹소켓 연결 설정 함수도 추가됨 . - - 웹소켓 함수 예 : WinHttpWebSocketSend , WinHttpWebSocketReceive - 현재(2022.03) 최신 버전 5.1 . 버전 5.0 은 2004년 10월 1일 부터 MS 사에서 배포 종료됨. WinHTTP 에서 제공되는 함수 전체 WinHTTP는 다음과 같은 함수를 제공합니다. WinHttpAddRequestHeaders HTTP 요청 핸들에 하나 이상의 HTTP 요청 헤더를 추가합니다. WinHttpAddRequestHeadersEx HTTP 요청 핸들에 하나 이상의 .. 2022. 1. 24.


 

비트코인




암호화폐       외환/나스닥/골드       암호화폐/외환/나스닥/골드 암호화폐/외환/나스닥/골드   암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)     롤오버 이자 없는 스왑프리계좌
( 스왑프리 암호화폐도 거래 가능 )    
MT4, MT5 , cTrader 모두 지원     FTMO 계좌 매매운용. MT4,MT5