'분류 전체보기'에 해당되는 글 166건

  1. 2024.02.20 통쥬들의 졸업. 2022, 2024
  2. 2023.11.16 GetRecordCount 리턴값 문제
  3. 2023.03.01 도메인을 다시 찾다.
  4. 2022.12.10 HP 8715 8710 8720 계열 무한카트리지 문제 해결. MFG로 사용! 1
  5. 2022.04.25 MSSQL 운영체제 오류 5 해결
  6. 2022.04.07 VS2015 갑자기 컴파일 안됨.
  7. 2022.03.22 용어정리
  8. 2021.09.27 2020년 오랜소망 창업 (벌써 1년)
  9. 2021.01.09 TIM3, TIM8 PWM 충돌문제.. 1
  10. 2020.11.19 KiCAD Perform Design Rules Check
  11. 2020.10.08 IAR No Valid license found. 1
  12. 2020.09.11 Win7 및 Win10 임베디드OS에서 0xC000007B 발생?
  13. 2019.03.29 vb6 런타임 오류 3421 원인은?
  14. 2017.06.09 vb6로 MySQL 드라이버 이용 MariaDB 저장프로시저를 사용할때.
  15. 2017.01.12 SQL 2000 Server에서 새 테이블이 안될때.
  16. 2016.12.10 FTP 명령어 정리
  17. 2016.10.07 코드 요소 xxx가 읽기 전용이므로 추가/제거 작업을 수행할 수 없습니다.
  18. 2016.09.27 C4430 형식 지정자가 없습니다. int 로 가정합니다.
  19. 2016.08.25 Win7 에서 공유폴더 패스워드 없애기.
  20. 2016.08.17 레지스터 읽기 쓰기 삭제~
  21. 2016.08.17 1초 딜레이 함수!
  22. 2016.08.03 예약된 상수를 쓰지말자!
  23. 2016.06.30 readonly 필드 사용법.
  24. 2016.06.30 열거형(Enum) Parse 사용방법.
  25. 2016.06.30 2016년 한해가 가기전에 C# 마스터!!
  26. 2016.06.11 DB SQL JOIN의 종류
  27. 2016.05.17 컴퓨터 켜진 시간 알아내기
  28. 2016.04.23 좋은 회사의 기준!!
  29. 2016.04.06 VS2008에서 LNK2001 오류.
  30. 2016.04.04 라즈베리파이3 발열 문제.

Posted by +깡통+

아직 파고 들지 않아서 원인은 정확하지 않다.

20년전 VB나 MFC에서 Recordset 을 사용하려면 항상 스트레스였다.

 

CString strSQL = L"SELECT * FROM AreaList";
CRecordset rs(&m_Db);
rs.Open(CRecordset::forwardOnly, strSQL);

 

long cnt = rs.GetRecordCount();
rs.MoveLast();
rs.MoveFirst();
long cnt2 = rs.GetRecordCount();

 

 

테이블 데이터는 3개.

cnt 는 리턴값이 1이고, cnt2 는 리턴값이 3 이다.

 

자료구조를 공부해보면 LIST 라는 형태를 알게된다.

현재의 포지션이 EOF를 모르는 상태와 같다.

그 끝을 향해 이동한뒤에야 아~  여기가 끝이구나.. 하는 듯.

왜 다시 First를 하냐면 첫번째 데이터부터 사용을 하기 위함이다.

Next Next Next... 하면서 데이터를 읽어보자.

Posted by +깡통+

나는 오래전에 도메인을 잃어버린 경험이 있다.

개인적인 실수였다.

너무나도 궁핍했던 그때...  도메인 연장 비용까지 고민을 했었던걸로 기억한다.

 

그리고 몇년에 걸쳐 그 도메인이 해지되기를 기다렸다.

수입자동차를 튜닝하는 회사의 도메인이라 쉽게 바뀌지 않을것 같았지만 기다렸다.

마침내 수년의 세월이 흘러 사이트 관리가 안되기 시작한 것을 알게되었다.

음..  이제 곧 문닫는건가??  예상은 적중했고 도메인을 다시 찾게 되었다.

 

그런데 이번에는 내 실수가 아닌 도메인 서비스 업체측의 통지 누락으로 블로그 도메인이 사라졌다.

www.kkangtong.net  

이걸 찾아오는데 2년이 걸렸다.

기간이 만료되자 도메인 사냥꾼들이 낚아 챘다.

니가 놓친 도메인..  돈을 주면 돌려준다는 그런 장사를 하는 곳이다.

첫해가 지나고 울리는 알람. 그리고 확인했더니 ㅠㅠ 연장!

두해가 지나고 울리는 알람.. 오홍? 이미 삭제처리했네? 등록!

 

관리하는 도메인이 많아지다보니 월말마다 체크하는 버릇이 생겼다.

싼게 비지떡? 도메인 등록/관리 업체도 중요하다. 아직은 가성비를 찾아 싼곳으로!!!

Posted by +깡통+

약 2년전 2020.8월쯤 국산 재고가 부족하여 무한카트리지가 장착된 HP8715 병행제품 구입.

메뉴가 영어로 나오지만 한국으로 변경하면 문제 없기에 구매.

잘~ 써오다..

무한공급기의 잉크가 덜 딸려간다는 느낌이 났는데 그냥 씀.

약 2000 page 이후 잉크가 소진되면서 카트리지 석션을 진행.

이후 카트리지 오류 봉착.

 

헤드 청소.

헤드 청소액 주입.

헤드 잉크 주입.

헤드 펌핑.

카트리지 석션~

펌웨어 다운그레이드!!  최초 1919 -> 1834 -> 1716

무한칩 교환까지!!  

 

별짓 다해보다가 MFG 메뉴에 들어가서 해결함.

물론 정상적인 방법은 아니지만 카트리지 인식을 체크하지 않는다.

 

방법.

1. 전원 코드를 뽑는다.

2. 전원 버튼을 누른상태로 전원 코드 연결.

3. 액정은 검정상태로 (홈),(?),(빽) 버튼이 나타나면 전원 버튼에서 손을 땐다.

4. 홈->빽->홈->홈 누른다. 안되면 한번더. ( NO MENU ITEMS 뜨면 1번부터 다시 )

5. XP에서 자주 만나던 블루크린 메뉴 같으게 뜸!

6. 좌측 상단 MFG 누른다.

7. 격자 무니와 진행바가 움직이면서 전원버튼이 꺼지를 기다린다.

8. 전원 버튼 ON! 

9. 완료!!   ( wifi 설정하고 프린터 테스트, 헤드정렬, 복사, 스캔 다됨!! )

 

조건.

헤더 불량이 아니어야 함.

 

추신.

HP 프린터의 고질병인듯 하다. 전원을 켤때마다 MFG 모드로 해야되는 불편함 정도는 감수해야함.

브라더 프린터의 무항잉크 제품이 정신건강에 이롭다. (집에서 쓰는제 고장없이 3년째)

HP 8710 계열을 쓴다는건 소호사무실에 복합기가 필요한것인데..

동등성능으로  DCP-T720DW (FAX제외) 또는 MFC-T920DW (FAX) 정도를 쓰는걸 추천.

 

Posted by +깡통+

Windows 보안 업데이트 이후에 생긴 문제로 판단된다.

SQL 2008 Express, SQL 2017 Express 를 사용중이며 DB파일을 자주 연결 하는 편이다.

 

mdf, ldf를 연결하려는 순간!

운영체제 오류 5: "5(액세스가 거부되었습니다.)"

구글링 해보니 db파일을 연결할때 sql server가 권한이 없기 때문에 발생하는 듯.

서비스에 로그인 탭에서는 계정지정 NETWORK SERVICE 가 설정되어 있다. 

 

1. 실행 -> services.msc

2. 서비스 메뉴에서 "SQL Server (인스턴스명)" 를 찾아 속성을 확인한다.

3. 로그온 탭에서 "로컬 시스템 계정", "서비스와 데스크톱 상호 작용 허용" 체크.

4. 서비스 다시 시작 또는 재부팅.

 

Posted by +깡통+

갑자기 컴파일이 안되면서 오류가 쏟아진다.

VS2019로 소스를 열어서 업그레이드 했기 때문인듯...

이전에 백업된 자료로 다시 컴파일이 가능하다.  휴~

 

심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류(활성) 파일 소스을(를) 열 수 없습니다. "new.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 78
오류(활성) 파일 소스을(를) 열 수 없습니다. "string.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 223
오류(활성) 파일 소스을(를) 열 수 없습니다. "stdio.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 226
오류(활성) 파일 소스을(를) 열 수 없습니다. "stdlib.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 229
오류(활성) 파일 소스을(를) 열 수 없습니다. "time.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 232
오류(활성) 파일 소스을(를) 열 수 없습니다. "stddef.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 238
오류(활성) 파일 소스을(를) 열 수 없습니다. "errno.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 244
오류(활성) 파일 소스을(를) 열 수 없습니다. "malloc.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 247
오류(활성) 파일 소스을(를) 열 수 없습니다. "crtdbg.h" LPRx c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afx.h 250

Posted by +깡통+
2022. 3. 22. 17:37

 FES: FlexWATCH Extended Service
 NC: Network Camera
 NIP: Network Image Provider
 NIPP: Network Image Providing Protocol
 NSS: Network Storage Server
 NVS: Network Video Server
 NVR: Network Video Recorder
 VSM: Video Server Module

Posted by +깡통+

참으로 오랜 세월 내가 운영하는 회사를 가지고 싶었습니다.

직장인이라면 누구나 꿈꿔봤을지도 모르겠습니다.

 

아니 직장인이 되기전 이미 미래에 창업을 생각하고 있었습니다.

그래서 많은 경험을 하려고 노력했고 그 밑거름으로 시작했습니다.

 

개발 상담 환영합니다.

http://www.cansys.co.kr

Posted by +깡통+

기록 차원에서 남겨둡니다.

 

STM32F103xC 를 사용했는데 PWM 시그널이 2가지가 필요했습니다.

그런데 TIM3 CH4에서 TIM8 데이터가 나옵니다.

칩 불량인가? 다른 칩에서도 같은 문제가 나오네요.

이 문제로 많은 시간을 허비하며 문제점 파악에 나섰고,

TIM 내부 블럭도와 CubeIDE 에서 실마리를 발견했습니다.

 

문제가 발생한 PWM Pin 을 살펴보는중 Remap 사용시 TIM8 CH3N 을 발견했습니다. 

 

 

 

이 N은 뭐하는 걸까?

PWM 신호를 RS485와 같이 미러신호가 필요할 경우가 있을껍니다. 아니면 똑같은 시그널을요.

어쨌든 PWM 시그널을 다른 포트로 내보낼 수 있습니다. 즉 GPIOC 를 사용하는 TIM8 에서 GPIOB 로 TIM6를 ㅁ

아무튼 코드에서 붉은색 부분이 문제였습니다.

 

  TIM_OCInitTypeDef  TIM_OCInitStructure;
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;  
  TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;
  TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;
  TIM_OCInitStructure.TIM_Pulse = 0;
  TIM_OC3Init(TIM8, &TIM_OCInitStructure);

 

정리하면 타이머 블록을 보면 신호가 분기되어 2곳으로 내보낼수 있습니다.

출력 여부를 결정하는 TIM_OutputState, TIM_OutputNState 의 값을 반드시 지정해야 합니다.

특히 구조체변수 TIM_OCInitStructure 선언시 기본 값이 셋팅되는 것이 아니므로 꼭! 설정값 여부를 지정해야 합니다.

 TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;

이렇게 해주면 TIM3의 CH4 와 TIM8의 CH3N 의 충돌이 해결됩니다.

 

굿밤~!

Posted by +깡통+

이제 시작입니다.

천천히 하나씩 업데이트 해둘께요.

KiCAD 5.1.6 사용 합니다.

 

DRC Check를 하면 나타나는 메시지들이 있네요.

 

Drilled holes too close together.

드릴 홀(인접) 간격이 너무 가깝습니다.

 

Courtyards overlap.

부품이 서로 겹칩니다.

=> 사실 외관 라인이 더 크게 그려진 경우가 있기 때문에 문제점이 없다면 이부분을 무시할 수 있을꺼라 봅니다.

    Pcbnew > Board Setup > Design Rules > Prohibit overlapping courtyards. (체크안함)

Posted by +깡통+

오류: "Fatal Error[Cp001]: Copy protection check, No valid license found for this product [24]"

 

해결: Administrator 계정으로 프로그램을 설치해야함.

       Windows7, Windows10 에서 테스트 함.

 

 

Posted by +깡통+

이 게시글은 아주 극소수에게만 적용됩니다.

왜냐하면 오랜시간이 지나면 잊어버리고 또 다시 고생을 하기에 여기에 남겨두는 것이거든요.

 

적용 OS

Windows7 Embedded 

Windows10 Enterprise LTSC 

 

증상 

Visual C++ 6.0 으로 만든 프로그램이 실행될때 0xC0000007B 발생함.

 

원인

프로그램이 실행될때 필요한 Dll 파일들이 부족해서 발생함

FlyCapture와 관련 있음. ( 이 프로그램은 고속 카메라 처리를 위한 응용 프로그램 입니다 )

 

해결방법.

FlyCapture 설치시 Runtime Utility Packages를 추가하여 재설치 필요. (재부팅 필요)

이 다른 에러로 .NetFramework 버전이 안맞다고 자동 다운로드 하는 경우도 있음.

 

이상~

Posted by +깡통+

vb6 runtime error 3421

 

Application uses a value of the wrong type for the current operation.

 

 

Now 함수와 같이 날짜를 반환하는 부분에서 문제가 없는지 확인 바랍니다.

날짜 형식이 맞지 않거나 변환하는 과정에서 발생하는 문제 입니다.

 

dim a as string* 19

a = now()

 

a가 19byte 일때는 "2019-03-29 12:00:00" 형식을 따르지만

now 함수는 os 설정값으로 인하여 출력형식이 변경됩니다.

"2019-03-29 오전 12:00" 형식이면 오류가 됩니다.

Posted by +깡통+

MySQL OUT or INOUT argument for routine is not a variable or new pseudo-variable in before trigger


이런 메시지를 접했다.

매개변수의 입출력 설정이 안맞나?

두번 세번 확인했다. 안된다.


바쁘니까 ^^.. 

중간에 삽질한건 다 건너뛰고

결론으로 바로!


1. 입출력 타입 설정 확인하고.

2. 드라이버 확인하고.

3. ConnectionString 확인하자.


.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server= .. (생략)

.ConnectionString = "Driver={MySQL ODBC 5.3 Unicode Driver};Server= .. (생략)


드라이버를 잘못 선택한 죄!


.CommandType = adCmdText

.CommandText = "sp_HaHaHa(?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?,?, OUT $okok)"


이런 삽질을 하지 마시길~


Posted by +깡통+
MSDE을 쓰려다보니

SQL 2000 Server를 쓰게 되었다.


물로 환경적인 부분으로 인하여 당분간은 계속 써야한다.

그러나 XP 시절에 나온 프로그램이라 거기까지..  상위 OS를 지원하지 않는다.

다행히도 Win7 에서 설치가 가능하다.


나는 최근 Win7 자동업데이트를 받았는데 이 후 부터!!!

SQL Enterprise Manager 에서 새 테이블이 안된다.


빈~~  화면으로 아무것도 안된다.  몇시간을 기다려도 안된다. 

테이블 디자인 변경은 가능한데도 ㅠㅠ

왜! 왜! 왜! 왜!~~~!  새 테이블이 안되는지


국내 검색사이트에서 포기하고 구글링을 실시한다.


정답은!!


Here's what I did.

Run Enterprise Manager as administrator

Navigate to a Data Base that you are working on.

Right click on any table that already in the system (Not right click on an empty space).

Left click on New table' and mmc snap-in pop open. It's worked.

Have fun!

(Accidently discovery. I don't khow why).


프로그램을 실행하고

작업하려는 데이터베이스로 이동한뒤

이미 존재하는 테이블에 우클릭(비어있는 공간에서 우클릭을 하지 말라) 하고 새 테이블을 클릭하라..

이런 내용이다.


된다 된다 된다!!!

#2000 새 테이블 창이 안떠요.     #SQL 2000 새 테이블 오류





Posted by +깡통+

FTP는 파일전송규약입니다.

웹호스팅을 하거나 업로드 다운로드 등에 사용됩니다.


보통은 그냥 상용화된 프로그램을 쓰지만..

개발을 하다보면 좀 더 특성화된 프로그램이 필요로 합니다.

그럴 땐.. FTP을 까야죠. 


깊이 깊이 까다보면 아~~~

Socket으로 명령어를 보내고 결과를 읽고~

fopen으로 파일을 열고~  바이너리로 파일을 보내고~

여러가지 경험을 하게 됨과 동시에~

우리가 쓰는 알FTP, FileZiller 등에 위대함을 느끼지요 ㅎㅎ


출처는 위키백과 입니다.


명령어 RFC 설명
ABOR 현재의 파일 전송 중단.
ACCT 계정 정보.
ADAT RFC 2228 인증/보안 데이터
ALLO 파일을 받기 위해 충분한 디스크 공간 할당.
APPE 이어서 추가.
AUTH RFC 2228 인증/보안 구조
CCC RFC 2228 명령 채널 지우기
CDUP 부모 디렉터리로 변경.
CONF RFC 2228 기밀 보호 명령
CWD 작업 디렉터리 변경
DELE 파일 삭제
ENC RFC 2228 개인 정보 보호 채널
EPRT RFC 2428 서버 접속에 필요한 확장 주소 및 포트 지정.
EPSV RFC 2428 확장 수동 모드 들어가기.
FEAT RFC 2389 서버가 추가한 기능 목록 보기
LANG RFC 2640 언어 탐색
LIST 지정한 경우 파일이나 디렉터리 정보를 반환. 지정하지 않은 경우 현재 작업 디렉터리 정보 반환.
LPRT RFC 1639 서버 접속에 필요한 긴 주소 및 목록 지정.
LPSV RFC 1639 긴 수동 모드 들어가기
MDTM RFC 3659 지정한 파일의 마지막으로 수정한 시간 반환
MIC RFC 2228 무결성 보호 명령
MKD 디렉터리 만들기
MLSD RFC 3659 디렉터리의 이름이 지정되면 디렉터리의 내용을 보여줌
MLST RFC 3659 명령 줄에 입력한 데이터만 제공.
MODE 전송 모드 설정 (스트림, 블록, 압축)
NLST 지정한 디렉터리의 파일 이름 목록 반환.
NOOP 동작 안 함 (더미 패킷: 대개 회선이 살아있는지를 살피기 위해 쓰임)
OPTS RFC 2389 기능 옵션 선택.
PASS 암호.
PASV 수동 모드 들어가기.
PBSZ RFC 2228 보호 버퍼 크기
PORT 서버 접속에 필요한 주소 및 포트 지정.
PROT RFC 2228 데이터 채널 보호 수준.
PWD 작업 디렉터리 인쇄. 호스트 컴퓨터의 현재 디렉터리 반환.
QUIT 연결 끊기.
REIN 연결 다시 초기화.
REST 지정한 지점에서 전송 다시 시작.
RETR 파일 복사본 전송
RMD 디렉터리 제거
RNFR 이름 변경 원본 이름
RNTO 이름 변경 대상 이름
SITE 지정한 명령어를 원격 서버로 송신.
SIZE RFC 3659 파일 크기 반환
SMNT 파일 구조 마운트.
STAT 현재 상태 반환.
STOR 데이터 입력 및 서버 쪽 파일로 저장.
STOU 파일을 저만의 방식으로 저장.
STRU 전송 구조 설정.
SYST 시스템 유형 반환.
TYPE 전송 모드 설정 (ASCII/바이너리).
USER 인증 사용자 이름.


https://ko.wikipedia.org/wiki/FTP_%EB%AA%85%EB%A0%B9%EC%96%B4_%EB%AA%A9%EB%A1%9D

Posted by +깡통+

아 놔!

구글신에서 검색해보면 다양한 방법이 있다.

보통은 .ncb 파일을 삭제후 프로젝트를 다시 실행 하라고 하신다.


안된다.


나 같은 경우에는 Project 가 분리되면서 Name 바꿔야 했는데

수작업으로 이리저리 바꾸다가 생긴 현상이다.


컨트롤을 추가하고 마법사를 통해 변수를 선언하려는데 안되는 것이었다. ㅠㅠ


1. .ncb 삭제

2. .h 파일을 이중 호출하는것이 있는지 확인.

3. 이벤트 수동 추가.


여러 방법중 눈에 띄는게 있었으니!


수동으로 이벤트를 추가하는 것이었다.

한번만 해주면 해결이 된다는데 일단 지푸라기 잡는 심정으로 했다.


헤더파일에 추가

afx_msg void OnLButtonDown(UINT nFlags, CPoint point);


소스코드에 추가

void CxxxDlg::OnLButtonDown(UINT nFlags, CPoint point)

{

CDialog::OnLButtonDown(nFlags, point);

}


다이얼로그 속성에 가서 해당 이벤트를 추가하려 하면..

이미 존재하는 거라고 지껄여 준다.


이후~  프로젝트 재실행하면 됨! ㅋㅋ

Posted by +깡통+

VS2008 오류이다.

error C4430: 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.


헤더파일 중 아래 코드에서 발생했는데 이 소스는 VC 6.0 에서 쓰던것이다.

typedef vector<char*> VEC_COMMAND_RESULT;

typedef std::vector<char*> VEC_COMMAND_RESULT;


추가후 해결 완료됨.

Posted by +깡통+

맨날 까먹고 다녀서.

메모하는 습관 기록하는 습관을 길러야됩니다.

 

Windows 7 공유폴더에 접근하려면 반드시 아이디와 패스워드를 묻습니다.

 

Network and Sharing Center 쪽으로 가셔서~

 

Change advanced sharing settings -> Password protected sharing -> Turn off password protected sharing

 

이렇게 해준다음~

 

공유할때 사용자에 Everyone 을 넣어줘야 합니다~

Posted by +깡통+
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;
 
namespace TrayIconRepair
{
    class Program
    {
        static void Main(string[] args)
        {
            string sTemp = DeleteTrayIconRegistry();
            Console.WriteLine("Register clear {0}", sTemp);
            System.Threading.Thread.Sleep(1000);        
        }
        
        public static void WriteRegistry(string _name, string _value)
        {
            RegistryKey regKey = Registry.CurrentUser.CreateSubKey("Software\\Test", RegistryKeyPermissionCheck.ReadWriteSubTree);
            regKey.SetValue(_name, _value, RegistryValueKind.String);
        }
 
 
        public static string ReadRegistry(string _name)
        {
            RegistryKey reg = Registry.CurrentUser;
            reg = reg.OpenSubKey("Software\\Test"true);
            if (reg == nullreturn "";
 
            if (null != reg.GetValue(_name))
            {
                return Convert.ToString(reg.GetValue(_name));
            }
            else
            {     
                return "";
            }
        }
 
        public static void DeleteRegistry()
        {
            Registry.CurrentUser.DeleteSubKey("Software\\Test");
        }
 
        public static string DeleteTrayIconRegistry()
        {
            RegistryKey reg = Registry.CurrentUser.OpenSubKey("Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\CurrentVersion\\Traynotify"true);
 
            if (reg == nullreturn "fail!";
 
            reg.DeleteValue("IconStreams"false);
            reg.DeleteValue("PastIconsStream"false);
 
            return "ok!";
        } 
 
    }

 

 }

cs

 

 

 

Windows7 버전에서 아이콘이 사라져 안보일때가 있다.

이때.. 사용할 소스코드.

 

 

Posted by +깡통+

ms 간격으로 설정 가능하다.

 

System.Threading.Thread.Sleep(1000);

Posted by +깡통+

오늘 또 식겁? 했다.

분명이 두달전에 파생된 펌웨어는 통신이 잘 되는데!!!

원본 펌웨어는 쓰레기 값이 자꾸만 수신된다.

PC에서 송신하면 STM32에서 계속 다른 응답이 전방에 섞여서 왔다.

 

왜! 왜!

 

결국 파생된 소스와 원본을 면밀히 검토한 결과 상수 RESET 의 문제였다.

종종 아래의 코드처럼 KEY 값을 정의한다.  

9번 값이 보이시는가?

특정 조합을 누르면 SoftReset을 하려고 만든게 화근!

 

#define UP      1
#define DOWN    2
#define LEFT    3
#define RIGHT   4
#define ENTER   5
#define CANCEL  6
#define RESET   9

#define ON 1
#define OFF 0

 

9번으로 인하 아래 코드에 영향을 받았다.

따라서 수신 인터럽트를 처리하러 왔다가.

송신까지 건들게 되는게 원인이었다.


void USART2_IRQHandler(void)  // RS232
{
  if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
  {
    /* Read one byte from the receive data register */
    USART_ClearITPendingBit(USART2, USART_IT_RXNE);
    RxBuffer2[RxHead2++] = USART_ReceiveData(USART2);   
    if(RxHead2 == MAX_RX2_BUFFER_SIZE) RxHead2 = 0;
  }
  
  if(USART_GetITStatus(USART2, USART_IT_TXE) != RESET)
  {  
    /* Write one byte to the transmit data register */
    USART_SendData(USART2, TxBuffer2[TxTail2++]);
   
    if(TxTail2 == MAX_TX2_BUFFER_SIZE) TxTail2 = 0;
   
    if(TxTail2 == TxHead2)
    {
      /* Disable the USARTz Transmit interrupt */
      USART_ITConfig(USART2, USART_IT_TXE, DISABLE);
    }
  }
}

 

 

다음에는 같은 실수 반복하지 말자!

Posted by +깡통+
 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
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ReadOnlyClass
{
    class ReadOnlyClass
    {
        public int x;
        public readonly int y = 1;
        public readonly int z;

        public ReadOnlyClass()
        {
            z = 24;
        }

        public ReadOnlyClass(int x, int y, int z)
        {
            this.x = x;
            this.y = y;
            this.z = z;
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            ReadOnlyClass o1 = new ReadOnlyClass(1, 2, 3);
            Console.WriteLine("o1: x={0}, y={1}, z={2}", o1.x, o1.y, o1.z);

            ReadOnlyClass o2 = new ReadOnlyClass();
            Console.WriteLine("o2: x={0}, y={1}, z={2}", o2.x, o2.y, o2.z);

            o2.x = 5;
            o2.y = 6;
            o2.z = 7;
        }
    }
}


39~40번 라인에 문제가 있다고 컴파일 하지 않아도 친절하게 알려준다. 기특 기특. ^^


Posted by +깡통+
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ParseTest
{
    class ParseTest
    {
        enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
        static void Main(string[] args)
        {
            Console.WriteLine("컬러 열거형에는 이런 값들이 있다 :");
            foreach (string s in Enum.GetNames(typeof(Colors)))
                Console.WriteLine(s);
            Console.WriteLine();
            Colors myOrange = (Colors)Enum.Parse(typeof(Colors), "Red, Yellow");
            Console.WriteLine("오랜지색 값은 합쳐진 것이다. {0}", myOrange);
        }
    }
}

Parse 메소드는 하나 이상의 열거된 상수의 이름이나 숫자 값의 문자열 표현을 해당하는 열거된 상수로 변환한다.

즉.. 숫자를 지정하지 않았으면 문자가 튀어 나온다.

이것 참 편리한 도구다.

다른 사이트도 있을듯 한데. ㅎㅎㅎ

http://hilite.me/


Posted by +깡통+

약 20년을 우려먹은 Visual Basic 이 명줄이 다 되어 가는것 같다.

이미 대부분의 프로젝트에서는 잘 쓰지 않을 것이라 추측한다.

일단 우리 회사는 빼고 ㅎㅎ


이제 다음 먹거리를 준비해야 된다.

난 생계를 책임지는 가장으로 가족을 먹여 살려야 하는 책임도 있지만,

프로그래머라는 직업을 유지하기 위해서는 새로운 언어를 습득해야할 시기인 것이다.

야야..  지금껏 그래왔잖아!

그 옛날 GW-BASIC 부터 지금까지 언어의 한계에 부딪혀 새로운 언어를 습득 했다.

C#이 처음 나왔을땐 java 줄을 타야하나~ 고민했다.

양대 산맥으로 커준 덕택에 내가 갈 길이 좀더 분명하고 앞서 달려가신 많은 개발자 덕택에 진흙 길을 아님이 분명하다.


잘 해보자.  연말에 웃을 수 있기를!!


Posted by +깡통+


데이터베이스에 꽃? ㅋㅋ 



Posted by +깡통+

XP에서는 GetTickCount 이라는 함수가 있다.

컴퓨터가 켜진뒤 1ms 값으로 기록된 Tick 데이터인데 / 1000 을 해야 초가 나온다.

Long 변수값 때문에 32 bit의 한계를 가지고 태어나 최대 49.61일 정도만 측정된다.( 누구는 49.7 이라는데 계산바랍니다. )


아무튼!

이 방법으로 280일 동안 켜져 있는 컴퓨터의 시간을 측정하기엔 처음부터 안 맞는 구조다.

VB6 로 해결 할 수 있는 방법을 구글링 했으나 삽질만 하루종일 했다. 


"로컬 영역 연결" 상태창에서는 연결된 시간이 표기 된다.

그 데이터를 얻기 위해 노력했으나 실패~  아닌 삽질이 연속되었고


마침내 찾았다.


net 명령어로 가능했다. DOS를 아시는 분이면 금방 찾을텐데 ㅎ

CMD 창을 띄운후 net statistics workstation  (엔터)


2016-05-17 11:44 이후의 통계


수신된 바이트 ...

수신된 서버 메시지 블록 ...

전송된 바이트 ...

전송된 서버 메시지 블록 ...


이걸 리다이렉션을 통해 TXT 파일로 저장해서 읽는 방법이다.

C:\>net statistics workstation > uptime.txt

하아~ ^^..

Posted by +깡통+

불필요한 회식, 야근, 회의가 없다.

정해진 시간 동안 업무에만 집중한다.

업무 하는데 있어 육아부담이 크지 않다.

일이 끝나면 눈치 보지 않고 정시 퇴근한다.

휴가를 마음 편히 갈 수 있다.

자기계발을 위한 시간적 여유가 있다.

가족들과 함께 보내는 시간이 충분하다.

계획적인 업무 처리가 가능하다.

Posted by +깡통+

1>------ 빌드 시작: 프로젝트: HMFS, 구성: Release x64 ------
1>링크하고 있습니다...
1>HMFS.obj : error LNK2001: "public: __cdecl CWinAppEx::CWinAppEx(int)" (??0CWinAppEx@@QEAA@H@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual __cdecl CWinAppEx::~CWinAppEx(void)" (??1CWinAppEx@@UEAA@XZ) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual struct CRuntimeClass * __cdecl CWinAppEx::GetRuntimeClass(void)const " (?GetRuntimeClass@CWinAppEx@@UEBAPEAUCRuntimeClass@@XZ) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual int __cdecl CWinAppEx::ExitInstance(void)" (?ExitInstance@CWinAppEx@@UEAAHXZ) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual int __cdecl CWinAppEx::LoadState(wchar_t const *,class CFrameImpl *)" (?LoadState@CWinAppEx@@UEAAHPEB_WPEAVCFrameImpl@@@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual int __cdecl CWinAppEx::CleanState(wchar_t const *)" (?CleanState@CWinAppEx@@UEAAHPEB_W@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual int __cdecl CWinAppEx::SaveState(wchar_t const *,class CFrameImpl *)" (?SaveState@CWinAppEx@@UEAAHPEB_WPEAVCFrameImpl@@@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual int __cdecl CWinAppEx::OnViewDoubleClick(class CWnd *,int)" (?OnViewDoubleClick@CWinAppEx@@UEAAHPEAVCWnd@@H@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual int __cdecl CWinAppEx::ShowPopupMenu(unsigned int,class CPoint const &,class CWnd *)" (?ShowPopupMenu@CWinAppEx@@UEAAHIAEBVCPoint@@PEAVCWnd@@@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "public: virtual void __cdecl CWinAppEx::OnAppContextHelp(class CWnd *,unsigned long const * const)" (?OnAppContextHelp@CWinAppEx@@UEAAXPEAVCWnd@@QEBK@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "protected: virtual void __cdecl CWinAppEx::OnClosingMainFrame(class CFrameImpl *)" (?OnClosingMainFrame@CWinAppEx@@MEAAXPEAVCFrameImpl@@@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "protected: virtual int __cdecl CWinAppEx::LoadWindowPlacement(class CRect &,int &,int &)" (?LoadWindowPlacement@CWinAppEx@@MEAAHAEAVCRect@@AEAH1@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "protected: virtual int __cdecl CWinAppEx::StoreWindowPlacement(class CRect const &,int,int)" (?StoreWindowPlacement@CWinAppEx@@MEAAHAEBVCRect@@HH@Z) 외부 기호를 확인할 수 없습니다.
1>HMFS.obj : error LNK2001: "protected: virtual int __cdecl CWinAppEx::ReloadWindowPlacement(class CFrameWnd *)" (?ReloadWindowPlacement@CWinAppEx@@MEAAHPEAVCFrameWnd@@@Z) 외부 기호를 확인할 수 없습니다.
1>D:\project\vc80\HMFS\x64\Release\HMFS.exe : fatal error LNK1120: 14개의 확인할 수 없는 외부 참조입니다.
1>빌드 로그가 "file://d:\project\vc80\HMFS\HMFS\x64\Release\BuildLog.htm"에 저장되었습니다.
1>HMFS - 오류: 15개, 경고: 0개
========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========

 

이러한 오류가 났다.

분명히 지난번에 정상적으로 컴파일 한 소스임이 틀림 없는데...

 

기억을 되듬어보니 VS2008 를 패치 했었다. 

컴파일 플랫폼 선택에서 x64가 나타나지 않았기 때문이다.

다시 Win32 를 선택해주니 정상적인 컴파일이 되었다.

 

조금은 사소한것 같지만 소스 수정을 잘못한줄 알고 디버깅(되돌리기)을 얼마나 했던가 -_-;

결국 원본 자체가 컴파일 안되는걸 모르고 몇 시간 허비했다.

Posted by +깡통+

컴퓨터를 하는 사람들이 체감하는 온도와...

땜쟁이들이 체감하는 온도는 분명 다른듯.


누구는 CPU 발열이 심하다..

누구는 그정도는 아니다..


구매전 난 누구의 말이 맞는지 믿지 못했습니다.

이젠 확실하게!!  이건 평범한 발열이라고 말할 수 있습니다.


지금가지 발열때문에 손가락이 화상을 입었던 적이 한두번 이겠습니까~

칩에 구멍이 날 정도로 심한 발열이 아닙니다.


또 방열판이 없어야 열 배출이 쉬운 그런 칩들도 있습니다.

쿨러는 더더욱 오버일테지요.



결론은 "방열판 하나 달아주면 전혀 문제가 없다." 입니다.


Posted by +깡통+