글 목록 보기

Lyn
조회 수 24523 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

DLLMain은 WinMain 이나 main 과는 다르게 제약이 많다.

나도 이걸로 크래시 낸 적이 많이몇번 있고 ... 


DLLMain은 일종의 "객체의생성자" 라고 보면 비슷하다.

"로딩중" 인 것이지 로딩이 끝난것이 아니다 라는것이다.


아래에는 Attach 시 기준으로 적었지만, Detach 에도 별 다를건 없다. kerner32.dll 이외의 dll은 이미 언로딩 되어있을 수도 있다.


이제 하지 말아야할것을 슬~슬 나열 해 보자. 


1. kernel32.dll 이외의 dll에 있는 함수 대부분.

kernel32.dll 이외의 dll이 로딩되어 있다는 보장은 전혀없다


2. 동기화코드

락, 언락 등의 코드


3. LoadLibrary, CreateProcess

다른 DLL 쓰지말라는말과 일맥상통. 


4. 전역객체 초기화, 메모리할당 등

메모리메니저가 로딩되었다는 보장이 없다


5. COM관련 코드

역시 보장없다


6. 예외 throw

C++ 객체 생성자에서 throw 하는것과 비슷한 대략므흣한 (...) 상황이 발생한다.


결론. 

DLLMain은 걍 비워 둬라. 그리고 Initialize 함수를 제공해라.
상당수의 라이브러리가 라이브러리 초기화 함수를 제공하는것은 다 이유가 있다!

(당장 GDI+와 Winsock2를 생각해봐라!) 

?

2011.12.31 22:44

새해다 ...

Lyn
조회 수 27694 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

뭐 업다 18 ㅜㅜ

?

Lyn
조회 수 29307 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Trac, Mantis, Redmine 은 기본적으로 UTF-8을 사용한다.

그러나 VC++은 소스를 ascii로 저장하기 때문에 저장소 연동을 하면 소스에서 한글이 다 박살난 채로 보이게 된다.

이것을 해결하기위해서는 소스를 UTF-8로 저장 해야 되는데, 저장시 자동으로 UTF-8로 변환을 하는 매크로가 있다



MacroIDE -> EnviromentEvents에


Imports System.IO


추가 한다. 그 아래에


Sub MakeUTF8File(ByVal path As String)

    Dim input As New FileStream(path, FileMode.Open)


    'Check BOM

    Dim isUTF8 As Boolean = (input.ReadByte = &HEF And input.ReadByte = &HBB And input.ReadByte = &HBF)

    input.Close()


    If (Not isUTF8) Then

        Dim s As String

        s = File.ReadAllText(path, System.Text.Encoding.Default)

        File.WriteAllText(path, s, System.Text.Encoding.UTF8)

    End If

End Sub


Public Sub DocumentEvents_DocumentSaved(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentSaved

    Dim path As String = Document.FullName

    MakeUTF8File(path)

End Sub


를 추가한다.



PS. trac은 지금 안 쓰고있어 확인이 안되는데 redmine 은 그냥 소스 인코딩을 추가해주면 간단히 해결된다 (...) 걍 euc-kr 등록해두자



?

Lyn
조회 수 27607 추천 수 0 댓글 0
Atachment
첨부 '2'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

멀티미디어 타이머를 시작하기 위해 timeSetEvent 를 호출하면



1.png

2.png


결과적으로 timeBeginPeriod 가 호출된다.

멀티미디어 타이머 해상도의 비밀은 timeBeginPeriod 이었던것!

?

Lyn
조회 수 27514 추천 수 0 댓글 0
Atachment
첨부 '2'
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Cilk plus 자료와 Sample Code

?

Lyn
조회 수 27818 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
VS2010에서 코드를 치려고 하면 아래와 같은 팝업이 뜨면서 툴이 제대로 동작 하지 않는 경우가 있다.
(주로 빨간줄 잘못긋기, 인텔리센스 맛가기 등등 ...)

Visual Studio has encountered an exception.PNG

Visual Studio has encountered an exception. This may be caused by an extension. You can get more information by running the application together with the /log parameter on the command line, and then examining the file 'C:\Users\USERNAME\AppData\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml'

이경우 레지스트리 수정으로 해결이 가능 한데, 

32Bit의 경우
[HKEY_CLASSES_ROOT\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]
의 Default 값을 
"C:\Program Files\Common Files\Microsoft Shared\MSEnv\TextMgrP.dll" 으로


64Bit의 경우
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]
의 Default 값을 
"C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\TextMgrP.dll" 으로 수정한다.


만약 기본폴더가 아닌 다른 곳에 설치 했다면 적당히 값 조절해라.
?
  • ?
    챙고 2013.11.13 09:56
    안녕하세요, 25살 이제 막 opencv에 들어선 대학생입니다.
    이 오류때문에 3일동안 아무것도 진전이 안되더군요.
    이 방법을 사용해 보려고하는데 제가 초보중에 초보여서..
    default 값을 변경해주는 방법을 모르겠습니다 ㅠ
    혹시 그 부분을 조금만 더 알려주실수 있나요?
    답변 기다리겠습니다.

Lyn
조회 수 27072 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

C++ 코딩을 하다 보면 복사 되지 말아야 하는 객체가 참 많다...


특히 포인터를 소유하고 있는 객체들이 그런데, Copy Constructor 를 만들어 주면 간단한 일이지만...  일일히 하기도 난감하고 Mutex 객체 등은 Copy Constructor 조차 의미가 없고 레퍼런스 카운팅을 해야 되는 더러운 상황이 된다.


이럴땐 간단히 Copy Constructor 를 private에 선언해서 차단 할 수 있는데... 이걸 일일히 해주자니 또 귀찮은게 인지상정이라...


이런것을 간단히 해결해 주는 class가 있다


boost::noncopyable 인데


boost/utility.hpp 에 존재한다.


간단히 boost::noncopyable 를 private 상속(상속시 접근지정자를 쓰지 않으면 private 다!) 해주면 된다.

너무 간단 하므로 샘플따위 없다 (...) 딴데가서 알아봐라

?

2011.03.30 23:51

Mysql 툴

Lyn
조회 수 37152 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

2015년 7월 현재 상황이 많이 바뀌었다.

HeidiSQL 은 발전이 없고, Mysql Workbench 는 엄청 좋아졋다. 특히 DB가 클 경우 HeidiSQL 은 테이블 목록 불러오는데만도 세월을 느낄 수 있을 정도이다.

HeidiSQL 을 쓸 경우는 그저 MariaDB 10.x 를 사용할 때 뿐이다(MariaDB와 같이 배포되며, Workbench 는 MariaDB 10.x를 지원하지 않는다)

 

HeidiSQL

 

MysqlFront 이제 구버전이다

 

TAG •
?

Lyn
조회 수 36701 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. 자동업데이트(이거 이슈 거의 무조건 생기는거 같다..)


2. 서버인증


3. 패킷 암호화


4. 접속유지체크(이걸 프레임워크단에 넣어야하나 어플단에서 구현해야하나...)


5. 일부 알고리즘을 분리해서 인증없이 실행 안되도록.


6. 크래시 덤프



?

Lyn
조회 수 41872 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

XMarks : 북마크 동기화


Fire Gesutrs : 제스쳐


FasterFox : 속도 증가(캐시 이용)

?

Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13