'프로그래밍/일반'에 해당되는 글 11건

  1. 2011.07.04 추적점
  2. 2011.06.22 Aqtime
  3. 2011.05.31 mklink 개발하다보면 필요하지
  4. 2011.05.11 parallel_studio_xe_2011
  5. 2011.05.03 응용 프로그램 실행오류, sidebyside,시작점을 찾을수 없습니다. 해결법
  6. 2010.03.12 [펌]C# 초보자부터 고수까지.
  7. 2010.03.12 [펌]C++ 초보자부터 고수까지 2
  8. 2009.10.23 warning C4251 2
  9. 2009.05.13 파일을 저장할때
  10. 2008.09.29 [펌] 멀티맵 사용 예제 1
2011. 7. 4. 22:45

추적점


이런것두 있었네?
나만 몰랐낭??

http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&page=4&page_num=40&select_arrange=last_comment&desc=&sn=off&ss=on&sc=on&keyword=&no=127&category

간단하게
특정 코드 부분을 지나가면 출력창에 메세지를 연동해서 이것저것 할수 있는거 같은데,
이런짓을 할려고 로그를 심어서 컴파일을 하거나... 귀찮은 짓을 했는데
이거 쓰면 되는구나라는 ... 2008부터 되나??
2011. 6. 22. 12:09

Aqtime

현 프로젝트 퍼포먼스 태스트를 하기 위해 도입한 프로파일러
성능, 메모리.. 기타 등등



http://smartbear.com/
이 회사 제품이고
여기 들어가서 트라이얼 신청하면 이멜 준다. 그리고는 깔고

http://smartbear.com/support/screencasts/aqtime/
투터리얼부터 감상 시작하자





결론을 말하자면
프로젝트가 커져서 안 붙음.... 특정 함수별로 붙일수 있으나... 그럼 딱 그함수만 측정이 되서 의미가 없음... 원하는 작업은 그게 아니라서.. 뭐 그걸 원하면 이걸 하면 좋을건데 전체적인 성능을 봐서 분석하고 싶기 때문에...
그리고 일단 많이 느림.. 체감이 될 정도로

프로젝트 초반부 부터 붙여가면서 작업해가면 좋을것도 같음...
2011. 5. 31. 16:49

mklink 개발하다보면 필요하지


rmdir 디렉토리
mklink /?

mklink를 치면 어떻게 사용하나 나옴

먼가 디랙토리릴 링크해야할 필요가 있을때
2011. 5. 11. 16:01

parallel_studio_xe_2011


이름도 어려운 패러럴 스튜디오
프로그램을 여러가지 방법으로 측정하고 고칠만한 요소를 볼려고 하는데
메모리도 보고 스래드도 보고, 속력도 보고... 특히 써볼려고 하는건
vturn 맞나?? 철자가.. 여튼 그거

그중에서 특정 부분의 코드의 속력만 보고 싶을때는

구버전
http://software.intel.com/en-us/articles/use-vtuneapi-in-intel-parallel-amplifier-for-selective-code-profiling/

현재 재목과 같은 버전을 태스트 하려면
http://software.intel.com/en-us/articles/use-new-pause-and-resume-api-from-intel-vtune-amplifier-2011-xe/

근데 결론은... 아래버전으로 샐랙티브 코드의 측정을 하려고 했으나 비쥬얼 스튜디오가 먹통됨....
일단 해보자는..

아.. 글고 평가판 쓰고 있는중임.
2011. 5. 3. 16:22

응용 프로그램 실행오류, sidebyside,시작점을 찾을수 없습니다. 해결법


컴퓨터 관리자



로그에 응용프로그램에서 문제를 선택


정확한 dll명이 나온다.. 아놔.. 시발 이걸 몰라서
존나 개삽질 했네... 이거 알려주신 책임님 만세
2010. 3. 12. 20:51

[펌]C# 초보자부터 고수까지.

http://adept.egloos.com/page/6

기획이 아닌 오직 개발자의 마인드를 담아 쓴 책으로, C#을 알기쉽게 풀어냈다. 발표자료와 책이 결합된 형식으로 구성하였는데, 발표자료에는 해당 페이지의 전반적인 요약사항을 포함하였으며 설명부에는 증명을 위한 코드와 자세한 설명을 수록하였다. 개발자의 열정과 학문적인 깊이를 담아내고자 노력한 이 책은 1430 페이지라는 방대한 분량을 독자들이 질리지 않도록 온라인 강좌를 무료로 제공하고 있다.

너무나 유명한 저자가 쓴 책.. 회사일 덕에 C#공부하라고 하는데, 이책을 봐야할듯??..
C, C++를 선수지식으로 두고 있어서, 음.. 한창 C++공부하고 있는 나에게 다음책으로 적합할 듯 ,,,
C++한두권정도 더 보고 넘어갈까.. 고민중
http://www.winapi.co.kr/ 저자의 홈페이지에서 더욱 상세한 내용을 얻을 수 있다.

C#과 .NET 라이브러리를 이용하는 개발자들이 어떻게 개발 생산성을 향상시킬 수 있을 것인가에 대한 실질적인 조언을 제공한다. 
저자인 빌 와그너는 보다 빠르고 효과적이며 신뢰할 수 있는 소프트웨어를 개발하기 위해서 개발자들이 반드시 알아야 하는 C#의 강력한 특징들을 50개의 항목으로 정리하였다

--------------------------------------------------------------------------------------------------------------
전 회사에서 c#공부를 할려고 했었는데 어떤책을 봐야하나 고민 좀 했었는데.. 좋은 글이 요킹 있넹
2010. 3. 12. 20:48

[펌]C++ 초보자부터 고수까지

펌 : http://adept.egloos.com/2815463


말이 필요없는책, C언어 이후 학습방법. 선수과정으로 C언어가 필요하다,
(초보자용)


가장 '기초적인' 개념보다는 가장 '유용한' 개념을 먼저 설명합니다:
따라서, 이 책을 읽은 독자는 금새 자기가 만족할 만한 프로그램을 만들 수 있습니다.
  • 프로그래밍 언어적 기능만을 설명하는 것이 아니라, 진짜로 실질적인 문제와 그 해결책에 대해 설명합니다:
  • 각각의 기능에 대한 표면적인 설명뿐만 아니라, 그 기능들을 어떻게 사용하는 지를 자세히 알 수 있습니다.
  • C++언어와 표준 라이브러리를 모두 다룹니다: 처음부터 C++ 표준 라이브러리를 제대로 사용할 수 있게 됩니다.
  • 저자들은 스탠포드 대학의 프로페셔널-교육 과정을 이 책으로 진행하면서 이러한 접근방법을 증명해 보였습니다. 이 교육과정의 수업 첫날부터, 학생들은 실질적인 프로그램 작성법을 바로 손쉽게 배울 수 있었습니다.

    여러분이 C++을 처음 공부하고자 하든, 아니면 C++을 이미 알고는 있지만 좀더 깊은 이해를 원하든 간에, 저자의 독특한 접근방법과 전문적 경험을 접하고 나면 Accelerated C++을 여러분의 애장 도서목록에 추가할 수밖에 없을 것입니다.
    (중급->고급 == 모두해당)


  • 「C++ 코딩의 정석: 101가지 규칙, 가이드라인, 좋은 습관들」. 이 책은 C++ 프로그래밍에 있어서 이해하고 지켜나가야 할 내용들을 101가지로 세분화하여 엮은 것이다. 각각의 가이드라인들은 구체적이고 상세하다기보다는 핵심적인 내용 중심으로 정리되어 있다. 각 규칙에 대한 설명과 예, 그리고 예외 상황과 참고 문헌의 순서로 나열하였다.


    '스콧 마이어스'라는 저자의 명성만으로도 주목을 받는 책!
    "Effective C++"의 1판과 2판은 전 세계 수십만 명의 프로그래머에게 사랑받으며 베스트셀러의 권좌를 누려왔습니다. 그 이유는 간단명료합니다. 스콧 마이어스가 알기 쉽게 풀어 주는 C++ 프로그래밍 기법은 현장의 전문가들이 사용하는 기본 철칙들(거의 항상 해야 하는 일들과 피해야 하는 일들)을 가감 없이 보여주어 깔끔하고, 정확하며, 효율적인 코드로 개발자를 이끌기 때문입니다. 

    55개 항목을 중심으로 새롭게 구성된 3판은 각각의 항목을 통해 C++를 더 훌륭하게 구사할 수 있는 방법을 제시하며, 각 항목의 이야기를 뒷받침하는 구체적인 예제들도 탄탄히 준비되어 있습니다. 이 개정판은 자원 관리 및 템플릿 사용을 포함하여 무려 반 이상이 새로와졌습니다. 2판에 실렸던 주제들 또한 예외 및 설계 패턴, 다중스레딩 등 최신의 프로그램 설계 이슈를 반영하여 전체적으로 완전히 수정되었습니다. 

    이 책의 주요 특징은 다음과 같습니다.
    - 클래스, 함수, 템플릿 및 상속 계통을 설계할 때 현장에서 제대로 쓸 수 있는 전문가급 조언을 제공합니다.
    - 표준 라이브러리에 새로이 도입된 “TR1” 라이브러리 구성요소의 적용방법을 보여주고 다른 라이브러리 구성요소와 차이점도 비교 분석합니다.
    - 다른 프로그래밍 언어(자바, C#, C)를 거쳐 온 개발자들이 “C++ 양식”에 빨리 동화될 수 있도록 다른 언어와 C++ 사이의 차이점을 통찰력 있게 설명합니다.
    - 개발자들 사이에서 "너 Effective C++몇번봤어?? " 하고 대화할정도 ㅎㄷㄷ..


    C++ 활용서! 
    〈EFFECTIVE C++〉의 저자 스캇 마이어스가 저술한 C++ 활용서. C++ 프로그래밍과 설계기술을 향상시켜주는 새로운 테크닉 35가지를 모았다. 최신 ISOㆍANSI C++ 표준에 맞췄다. 
    저자의 오랜 경험에서 뽑아낸 통찰력을 바탕으로 이 책은, C++를 사용하는 모든 프로그래머를 위한 필독서다. C++를 통해 효율적인 소프트웨어를 개발하는 방법을 가르쳐주고 있다. 
    프로그램의 효율성을 높이는 입증된 테크닉뿐 아니라, 스마트 포인터 등 전문가만이 다루어온 기능에 대한 테크닉과 멤버 템플릿 등 새롭게 도입된 기능에 대한 테크닉도 아낌없이 펼쳐보이고 있다. 또한 C++의 주요 기능을 활용했을 때에 달라지는 시간ㆍ공간적 비용에 대해 신랄하게 설명한다. 충실한 예제도 담아내 이해를 도와주고 있다.


    C++에 대한 전문서. 이 책은 C++가 가진 고성능 프로그램 제작의 잠재력을 설명한다. 실무적이고 일상적인 객체 지향 디자인 법칙과 상당량의 성능을 개선시킬 수 있는 C++ 코딩 기술에 관한 내용을 포함하고 있으며, 숨겨진 연산 부하를 생성시키는 디자인과 코드의 공통적인 함정을 지적하며, C++의 강력함과 유연성을 고성능, 확장성과 혼합하여 최상의 프로그램을 작성하는데 초점을 둔다. 임시 객체, 메모리 관리, 템플릿, 상속, 가상 함수, 인라인, 참조 횟수, STL, 등에 대해 서술하고 있는 이 책의 공저가들은 상용 C++ 응용프로그램으로부터 마지막 최대한의 성능을 작성한 직접적인 경험을 가지고 있다.


    윈도우 프로그래머를 위한 최고의 책, 윈도우 시스템의 근원을 파헤친다.
    Visual C++로 복잡한 애플리케이션을 개발하는 프로그래머라면 이 책의 조언이 매우 큰 도움이 될 것이다. 제프리 리처는 Windows XP, Windows Vista, Windows Server 2008에 대한 내용을 반영하여 8년만에 이 책을 개정하였다. 이 책에 포함된 깊이 있고 폭넓은 지침, 향상된 기법, 개선된 코드 예제는 당신을 윈도우 애플리케이션 개발 전문가로 이끌어줄 것이다.

    [주요내용]
    - 32비트와 64비트 윈도우에서 동작하는 애플리케이션의 구조와 구현
    - 프로세스와 잡의 생성과 사용
    - 스레드의 생성, 관리, 동기화, 파괴
    - I/O 컴플리션 포트를 이용한 동기, 비동기 I/O의 수행
    - 가상 메모리, 메모리 맵 파일, 힙을 아우르는 다양한 메모리 관리
    - 스레드 스택의 물리적 저장소 확보 기법
    - 지연 로딩을 위한 DLL 생성, API 후킹, 프로세스 인젝션
    - 구조화된 예외 처리의 사용, 윈도우 에러 복구, 애플리케이션 재구동

    펌// 끝


      요즘 회사서 네이티브 랭귀지 스터디합니다. 초입으로 손 마추기로 열형강의 c++4주 완성 하고 있는데, 이후 볼 책에 대한 방향으로 아래 책들이 적당한거 같네요.

      멀좀 알아야 먹고 살지 않을가 하며

    2009. 10. 23. 22:38

    warning C4251

    1. 현상

      

    이 글은 예전 GPG 스터디 포럼에 jst0808 님이 올리신 주제와 그에 대한 답글들입니다. 원본(Ezboard)은 "STL질문여..!"입니다.


    제목: STL질문여..!
    글쓴이: jst0808 , 글쓴때: 6/5/01 11:26:59 am
    class 를 하나 만들었어여.
    그안에 STL vector 를사용한 기능이 있는데..
    그냥 static library로 쓸때는 암 문제 없이 돌아 갔어어여.
    근데 dll 로 만드니깐.

    warning C4251: 'STL_MyVec' : class 'std::vector<struct MyVec,class std::allocator<struct MyVec> >' needs to have dll-interface to be used by clients of class 'MyClass'

    이런 워닝이 뜨데여. 기능은 별문제 없이 돌아가는데..
    좀 찜찜해서리..
    갈켜 주세여.

    제목: 도움말에 따르면..

    글쓴이: gryu , 글쓴때: 6/5/01 11:52:10 pm


    STL_MyVec의 기반 클래스를 선언할 때 앞에 __declspec(dllexport) 를 붙이지 않았기 때문이라고 합니다.

    STL과 특별한 관련이 있는 것 같지는 않구요. 일반적으로 클래스의 멤버 함수를 익스포트할 때 고려해야 하는 문제인 것 같은데.. 다른 분이 좀 더 자세히 이야기해 주시길...


    /*************************
    as simple as possible,
    but not simpler
    *************************/




    제목: 걍 무시해버리세요..

    글쓴이: zho , 글쓴때: 6/6/01 9:46:18 am

    __declspec(dllexport) 로 선언되지 않은 클래스를 사용할 때 나타나는 경고입니다. 주로 MFC 클래스들을 사용할때 나타납니다.
    만약 mfc 를 사용하지 않는다면 겉으로 드러나는 클래스는 전부 __declspec(dllexport) 를 사용하시구여.
    #pragma warning(disable: 4251)
    로 경고를 막아버리시면 경고에 대한 스트레스를 받지 않을 겁니다.
    stl 을 사용하다보면 몇가지 경고가 나오는데, 대부분 위의 방법으로 무시해버리실 수 있습니다.

    제목: 에구 첨 써보는데... ^^
    글쓴이: midihana , 글쓴때: 6/8/01 3:03:27 am
    하하.. MFC 코드에도 보면 맨 위에 항상..
    #pragma warning(disable : 4251)
    #pragma warning(disable : 4786)

    요 두놈이 꼭 따라다니더군여....
    STL 쓰시면서 젤 많이 만나는 경고일겁니다..
    저두 STL 많이 쓰는 편인데..
    이젠 아예 코드 맨 위에다가 버릇처럼 써넣습니다.. ^^

    그럼 즐프하세요.. ^^

    [출처] [펌] [stl] #pragma warning(disable : 4786)|작성자 오서비



    DLL제작시 warning C4251: 에 대한 대처 PDF 문서 인용.

     

    #include<vector>
    #if !defined(DLLEXPORT_EXPORTS)
    # define DLLEXPORT_API __declspec(dllexport)
    #else
    # define DLLEXPORT_API __declspec(dllimport)
    #endif
    class DLLEXPORT_API CDLLexport
    {
    public:
    std::vector<char> vs;
    };

     

    warning C4251: 'vs' : class 'std::vector< char,class
    std::allocator<char> >' needs to have dll-interface to be used by
    clients of class 'CDLLexport'

     

    이 경고는 클래스 CDLLexport에서 사용된 vs라는 개체의 클래스가
    DLL 인터페이스를 가져야 한다고 말해주고 있다. 즉 이 경고에 따르면 m_strUpdateIgnore는 DLL에 해당
    하는 인터페이스가 없기 때문에 외부에서 사용할 수 없다는 뜻이다. 분명 클래스를 DLL 인터페이스로
    지정하였는데 어째서 UpdateIgnore::m_strUpdateIgnore는 문제가 발생하는 것일까? 일반적인 클래스나 함수, 개체를
    DLL 인터페이스로 지정하는 것은 위와 같은 선언이면 충분하지만, 템플릿을 DLL 인터페이스로 지정하
    기 위해서는 좀더 복잡한 과정이 필요하기 때문이다.
    템플릿은 DLL 인터페이스로 지정되기 전에 먼저 템플릿을 인스턴스화하고, 이 인스턴스가 DLL 인터페
    이스를 갖는다고 지정해야 한다. 앞의 예를 다음과 같이 수정해 보자.
    #include<vector>
    #if !defined(DLLEXPORT_EXPORTS)
    # define DLLEXPORT_API __declspec(dllexport)
    # define DLLEXPORT_TEMPLATE
    #else
    # define DLLEXPORT_API __declspec(dllimport)
    # define DLLEXPORT_TEMPLATE extern
    #endif
    DLLEXPORT_TEMPLATE template class DLLEXPORT_API std::vector<char>;
    class DLLEXPORT_API CDLLexport
    {
    public:
    std::vector<char> vs;
    };
    다시 컴파일해 보자. 자, C4251은 사라졌다. 먼저 사용할 컨테이너 vector의 완전한 인터페이스를 인
    스턴스화하고, DLL 인터페이스를 지정함으로써 더 이상 경고가 발생하지 않는다. 여기서 사용된 키워
    드 extern(DLLEXPORT_TEMPLATE)은 이 파일이 DLL용으로 컴파일될 때 템플릿 클래스를 명시적으
    로 인스턴스화할 것을 명령하는 역할을 한다.
    이런 방법을 사용한다고 해도 DLL에서 컨테이너를 export하는 것은 vector를 제외하면 불가능하다.
    인스턴스화와 동시에 인터페이스를 지정하는 도중 체인이 발생하여 더 이상 인스턴스화를 진행할 수 없
    기 때문이다.


    출처 : http://blog.naver.com/wwforever80/60043796212
    댓글만 남기고 허락 없이 퍼왔어요 - -;




    2009. 5. 13. 10:05

    파일을 저장할때


     가끔 별 생각없이 내가 정의해놓은 큰 구조체 자체를 저장하는 경우가 있는데, 
    물론 사이즈 체크하고 받아서 데이타로 써버리게 짜두어서 문제는 없지만,

     누군가, 아니면 혹시 내가 작업하다 구조체 변수를 추가하는 경우가 생기면
    문제가 생길것 같은 막연한 불안감이 생겼다.

     아직은 이런 문제는 없었는데, 이런것도 대비해둬야 되지 않을까 생각해본다.
    그냥 이런일이 앞으론 있지 않을까 해송~~
    2008. 9. 29. 11:37

    [펌] 멀티맵 사용 예제


     

    //multmap.cpp -- multimap을 사용한다
    #include <iostream>
    #include <string>
    #include <map>
    #include <algorithm>

     

    using namespace std;

     

    typedef int KeyType;
    typedef pair<const KeyType,string> Pair;
    typedef multimap<KeyType,string> MapCode;

     

    int main()
    {
        MapCode codes;

       

        codes.insert(Pair(415,"샌프란시스코"));
        codes.insert(Pair(510,"오클랜드"));
        codes.insert(Pair(718,"브루클린"));
        codes.insert(Pair(718,"스탠튼섬"));
        codes.insert(Pair(415,"샌라파엘"));
        codes.insert(Pair(510,"버클리"));

       

        cout << "지역코드가 415인 도시 수:" << codes.count(415) << endl;
        cout << "지역코드가 510인 도시 수:" << codes.count(510) << endl;
        cout << "지역코드가 718인 도시 수:" << codes.count(718) << endl;

        cout << "지역 코드 도시\n";
         

          MapCode::iterator it;
          for (it = codes.begin(); it != codes.end(); ++ it)
              cout << "   " << (*it).first << "   " << (*it).second << endl;

          pair<MapCode::iterator,MapCode::iterator> range = codes.equal_range(718);
          cout << "지역 코드가 718인 도시들:\n";
          for (it = range.first; it != range.second; ++ it)
              cout << (*it).second << endl;

         

    return 0;
    }

     

    [출처] multimap사용한 도시명과 코드 예제|작성자 지현사마

    쉽게 쓸수 있긴한데 느리진 않겠징...