336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

error C4996: 'xxx': deprecated로 선언되었습니다.



deprecated란

기존의 함수나 클래스가 필요없어져서 삭제하려고 할 때 이미 많은 곳에서 사용 중이라서 바로 삭제하기 까다로운 경우가 있다. 이런 경우 바로 삭제하지 않고 삭제할 함수나 클래스를 사용하지 않도록 유도한 후 사용하는 곳이 없어지는 시점이 왔을 때 삭제하는 방식을 사용할 수 있다. 이 때 사용할 수 있는 기능이 deprecated 기능이다.


    //함수
    __declspec(deprecated) void DeplacatedFunction()
    {
    }

    //구조체
    struct __declspec(deprecated) DeplacatedStruct
    {
    };

    //클래스
    class __declspec(deprecated) DeplacatedClass
    {
    };

     



    이렇게 설정하면 컴파일시 deprecated로 설정된 것이 사용된 곳에서 각각 다음과 같은 메시지가 출력된다.

    warning C4996: ‘DeplacatedFunction’: deprecated로 선언되었습니다.
    ‘DeplacatedFunction’ 선언을 참조하십시오.

    warning C4996: ‘DeplacatedStruct’: deprecated로 선언되었습니다.
    ‘DeplacatedStruct’ 선언을 참조하십시오.

    warning C4996: ‘DeplacatedClass’: deprecated로 선언되었습니다.
    ‘DeplacatedClass’ 선언을 참조하십시오.



    그러나 의도적으로 Deplacated 로 설정된것을 사용하고자 한다면



    #define _CRT_SECURE_NO_DEPRECATE


    #pragma warning(disable:4996)


    둘 중의 하나를 선언하면 된다.





    deprecated (C++)

    Visual Studio 2005

    (Microsoft specific) With the exceptions noted below, the deprecated declaration offers the same functionality as the deprecatedpragma:

    • The deprecated declaration lets you specify particular forms of function overloads as deprecated, whereas the pragma form applies to all overloaded forms of a function name.

    • The deprecated declaration lets you specify a message that will display at compile time. The text of the message can be from a macro.

    • Macros can only be marked as deprecated with the deprecated pragma.

    If the compiler encounters the use of a deprecated identifier, a C4996 warning is thrown.

    Example

    The following sample shows how to mark functions as deprecated, and how to specify a message that will be displayed at compile time, when the deprecated function is used.

    // deprecated.cpp
    // compile with: /W1
    #define MY_TEXT "function is deprecated"
    void func1(void) {}
    __declspec(deprecated) void func1(int) {}
    __declspec(deprecated("** this is a deprecated function **")) void func2(int) {}
    __declspec(deprecated(MY_TEXT)) void func3(int) {}
    
    int main() {
       func1();
       func1(1);   // C4996
       func2(1);   // C4996
       func3(1);   // C4996
    }
    

    The following sample shows how to mark classes as deprecated, and how to specify a message that will be displayed at compile time, when the deprecated class is used.

    // deprecate_class.cpp
    // compile with: /W1
    struct __declspec(deprecated) X {
       void f(){}
    };
    
    struct __declspec(deprecated("** X2 is deprecated **")) X2 {
       void f(){}
    };
    
    int main() {
       X x;   // C4996
       X2 x2;   // C4996
    }


    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    출처 : http://www.gamedevforever.com/282



    스코프를 벗어난 객체 주시하기

    디버깅을 하다 보면 스코프를 벗어난 객체를 계속 주시하고 싶을 때가 있습니다. 하지만 비쥬얼 스튜디오의 조사식 창(Watch Window)에서는 입력한 객체가 스코프를 벗어나면 비활성화가 되어 더이상 값을 확인 할수 없게 되어버리죠. 이 때, 조사식에 주시 하고픈 객체의 포인터를 입력하면, 해당 객체가 스코프를 벗어났더라도 (해당 객체가 살아 있다면) 지속적으로 값을 확인할 수 있습니다.



    위 코드를 보면 mHyuna 객체는 이미 스코프를 벗어나 조사식 창에서 비활성화가 되었지만, (CHyuna*)0x0031fe2c 식으로 직접 객체의 주소를 참조하여 스코프를 벗어난 객체의 값을 확인할 수 있습니다.


    배열값 확인

    간혹 매우 큰 크기의 배열을 사용할때가 있습니다. 대략 1만개라고 해보죠. 이 배열 내부의 값을 확인하려면 어떨까요? 1만개의 배열을 일일히 확인하려면 엄청나게 스크롤링을 해야 할 것 입니다.



    이럴때 범위식을 사용하여 특정 구간의 값만을 확인하는 방법이 있습니다. 배열명, 범위 식으로 조사식 창에 입력하여주면 그 범위 만큼의 배열만 보여주는 것이죠. 또한 포인터 연산을 통해서 특정 범위 부터의 값도 확인할 수 있습니다.



    CRT 라이브러리를 활용한 메모리 누수 탐지

    메모리 누수는 항상 골치 거리입니다. 수많은 코드들 중에서 어디서 메모리가 새는지 원인을 찾기도 힘들죠. CRT 라이브러리를 활용하여 메모리 누수 지점을 찾기 위한 방법이 있습니다. 먼저 아래와 같이 CRT 라이브러리를 사용하기 위한 헤더를 선언 해줍니다. 그리고 메모리 누수 체크를 위한 플래그를 선언 해줍니다( _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); ).



    위 코드를 보시면 일부러 char[8] 만큼의 메모리를 할당 해주고, 해제를 안하고 있습니다. 이 코드를 실행시키면 아래와 같이 출력 창에서 메모리 누수가 탐지 되었다는 메시지가 나타납니다.



    출력창 메시지에서 빨간 네모 박스의 숫자를 잘 기억해두세요. 이 것이 메모리가 누수되는 위치를 가리키고 있는 값입니다. 이제 이 값을 이용해 메모리 누수 위치를 찾아보도록 하겠습니다.


    우선 프로그램 아무 곳에나 중단점을 걸고 디버깅 모드로 들어갑니다. 되도록 이면 프로그램의 시작 점에 거는 것이 좋습니다. 디버깅 모드에 들어갔으면 아래와 같이 조사식 창에 {,,msvcrXXXd.dll}_crtBreakAlloc 을 입력해줍니다. 여기서 XXX는 비쥬얼 스튜디오 버전을 적어줍니다. 2008일 경우 msvcr90d.dll, 2010일 경우 msvcr100d.dll, 2012 일 경우 msvcr110d.dll 입니다.



    조사식 창에 위의 구문을 입력하면 처음에는 값이 -1로 나올 것입니다. 여기에 출력창에 나왔던 메모리 누수 위치값을 입력해줍니다. 위의 예제에서는 108 이죠. 그 다음 F5를 눌러 프로그램 실행을 재개합니다. 


    그러면 어디선가 중단점이 걸립니다. 이제 콜스택을 확인해봅니다.



    중단점이 걸린 곳은 msvcr110d.dll 모듈입니다. 이 부분은 디버깅을 위한 곳이니 신경 쓰지 마시고, 밑으로 따라 내려가 보시면 실제 작업 영역 호출 부분이 있습니다. 이 곳으로 따라 가보면...



    짜잔~ 메모리를 할당하고 해제 하지 않은 부분을 찾아냈습니다. 이렇게 CRT 라이브러리를 이용하여 메모리 누수 원인을 찾아 낼수 있습니다.


    값이 변경 되는 위치 찾기

    디버깅을 하다보면 특정 변수가 어디서 값이 변경 되는 지를 알고 싶을 때가 있습니다. 변수를 사용하는 곳을 전부 검색하여 중단점을 걸어서 볼수도 있지만 데이터 중단점 기능을 이용하면 값을 변경 하는 곳을 손쉽게 찾을 수 있습니다.


    먼저 추적 하고 싶은 데이터의 주소를 파악합니다.



    그 다음 비쥬얼 스튜디오의 디버그 -> 새 중단점 -> 새 데이터 중단점을 선택합니다. 여기에 위의 데이터 주소 값을 입력 해줍니다. 타입의 크기 값에 주의 합니다.



    중단점을 추가 한 후, F5를 눌러 실행을 재개합니다. 그러면 어디선가 해당 데이터가 값이 변경 되면 아래와 같이 중단점이 작동하게 됩니다.



    위의 예제에서는 SexyUp 함수에서 해당 데이터를 변경하는 것을 알아냈습니다.


    출처 및 참고

    Code Project Article - 10 Even More Visual Studio Debugging Tips for Native Development

    Code Project Article - 10 More Visual Studio Debugging Tips for Native Development

    MSDN - CRT 라이브러리를 사용하여 메모리 누수 찾기

    'Programming > C,CPP,CS' 카테고리의 다른 글

    CRuntieClass Reflection  (0) 2016.08.17
    error C4996: 'xxx': deprecated로 선언되었습니다.  (0) 2016.08.12
    C++ Standard library has many containers  (0) 2016.07.19
    Log4cxx Build in VS2013  (0) 2016.06.29
    Log4cxx Tutorial  (0) 2016.06.28

    C++ Standard library has many containers

    Programming/C,CPP,CS 2016. 7. 19. 10:37 Posted by TanSanC
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    C++ Standard library has many containers. Depending on situation you have to choose one which best suits your purpose. It is not possible for me to talk about each of them. But here is the chart that helps a lot (source):






    C++ 스탠다드 라이브러리에 많은 컨테이너 들이 있다.
    흔히 사용하는 List, Stack, Vector 뿐만 아니라 다양한 컨테이너들이 존재하는데, 그 컨테이너들을 언제 사용해야 할지를 FlowChart 를 따라가면서 쉽게 선택할 수 있다. 
















    enter image description here




    Log4cxx Build in VS2013

    Programming/C,CPP,CS 2016. 6. 29. 15:01 Posted by TanSanC
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    Log4cxx Build in VS2013


    1. DownLoad FIles


    Apache log4cxx 

    Apache Portable Runtime (APR)
    Apache Portable Runtime-util (APR-util)

    GNU Sed


    apache-log4cxx-0.10.0.zip

    apr-1.5.2-win32-src.zip

    apr-util-1.5.4-win32-src.zip

    sed-4.2.1-setup.exe




    2. Installation


    2.1. Decompress APR, APR-util, log4cxx File in same folder
    ...\log4cxx\apr
    ...\log4cxx\apr-util
    ...\log4cxx\log4cxx

    2.2 Install GNU sed
    Run "sed-4.2-1-setup.exe"
    Add environment variable %PATH% : "C:\Program Files\GnuWin32\bin" 

    2.3 in "cmd.exe" move to "...\log4cxx" folder
    Run "configure.bat" in "cmd.exe"
    Run "configure-aprutil.bat" in "cmd.exe"

    2.4. Compile "C:\work\log4cxx\log4cxx\projects\log4cxx.dsw"
    Result : log4cxx.dll, log4cxx.lib
    ("...\log4cxx\projects\Debug or Release")

    config1.

    log4cxx 프로젝트 속성 / 구성 속성 / 링커 / 입력 / 추가 종속성 : 
    apr.lib,
    aprutil.lib,
    xml.lib
    추가

    config2.
    apr,aprutil,xml 프로젝트 속성/ 구성 속성/ 라이브러리 관리자/ 일반/출력 파일
    apr.lib,
    aprutil.lib,
    xml.lib
    이름과 같은지 확인(apr-1.lib 인경우가 있음)

    config3.
    log4cxx 프로젝트 속성 / 구성 속성 / C/C++ / 추가 포함 디렉터리 : 
    ..\src\main\include
    ..\..\apr\include
    ..\..\apr-util\include

    config4.
    log4cxx 프로젝트 속성 / 구성 속성 / 링커 / 추가 라이브러리 디렉터리 : 
    ..\..\apr\LibD
    ..\..\apr-util\LibD
    ..\..\apr-util\xml\expat\lib\LibD

    Error1. C2252

    LOG4CXX_LIST_DEF( ... , ... );

    move to out of class area, in same namespace

    but, 

    LOG4CXX_LIST_DEF(ConnectionList, Connection);  

    move with 

    typedef log4cxx::helpers::SocketPtr Connection; 


    Error2. C2039

    "LoggingEvent::KeySet" change to "KeySet"


    Error3. LNK2019

    프로젝트 속성 / 구성 속성 / 링커 / 입력 / 추가 종속성 : Rpcrt4.lib 추가






    'Programming > C,CPP,CS' 카테고리의 다른 글

    비쥬얼 스튜디오 디버깅 팁 ( Visual Studio Debugging Tips )  (0) 2016.08.09
    C++ Standard library has many containers  (0) 2016.07.19
    Log4cxx Tutorial  (0) 2016.06.28
    Log Librarys  (0) 2016.06.27
    ATL,CPP,C# dll 배포  (0) 2016.05.27

    Log4cxx Tutorial

    Programming/C,CPP,CS 2016. 6. 28. 14:20 Posted by TanSanC
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    Log4cxx


    관련 추천 블로그


    http://joygram.org/



    쉽게 설명된 튜토리얼이 제공

    'Programming > C,CPP,CS' 카테고리의 다른 글

    C++ Standard library has many containers  (0) 2016.07.19
    Log4cxx Build in VS2013  (0) 2016.06.29
    Log Librarys  (0) 2016.06.27
    ATL,CPP,C# dll 배포  (0) 2016.05.27
    Free Dia Diagram Editor  (0) 2016.04.28

    Log Librarys

    Programming/C,CPP,CS 2016. 6. 27. 16:26 Posted by TanSanC
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    Log Librarys



    log4c : 

    http://log4c.sourceforge.net/ 

    https://sourceforge.net/projects/log4c/


    version 1.2.4 ,  Last Update: 


    log4cplus :

    http://log4cplus.sourceforge.net/

    https://sourceforge.net/projects/log4cplus/


    Version 1.2.0 , Last Update: 


    Last Update: 2016-04-29


    log4cxx : 

    https://logging.apache.org/log4cxx/

    http://www.apache.org/dyn/closer.cgi/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.zip


    version 0.10.0 , Last Update: 2015-02-17



    'Programming > C,CPP,CS' 카테고리의 다른 글

    Log4cxx Build in VS2013  (0) 2016.06.29
    Log4cxx Tutorial  (0) 2016.06.28
    ATL,CPP,C# dll 배포  (0) 2016.05.27
    Free Dia Diagram Editor  (0) 2016.04.28
    Windows 버전별 기본 포함 .NET Framework  (0) 2016.04.14

    ATL,CPP,C# dll 배포

    Programming/C,CPP,CS 2016. 5. 27. 10:56 Posted by TanSanC
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    ATL,CPP,C# dll 배포


    dll 배포 관련 질문이 올라와서 저도 다시 한번 정리 할겸 올려 봅니다.







    DLL reg 등록 방법


    1. Visual Studio 기반으로 dll 을 만들어서


     디버그 옵션을 조절하여 


     html 이나 특정 app 을 실행하는 형태로 프로젝트 설정을 하였다면


     자동으로 Visual Studio 가 dll 을 해당 컴퓨터에 등록하게 됩니다.



    배포를 하려면 배포할 컴퓨터에 일일이 Visual Studio 를 설치 할 수 없으므로


    아래의 방법을 활용 합니다.




    2.  regsvr32.exe 활용


    regsvr32.exe 는 


    C:\Windows\System32 경로에 존재합니다.



    참고 64비트 버전의 Windows 운영 체제에는 다음과 같은 두 가지 버전의 Regsv32.exe 파일이 있습니다.

    • 64비트 버전은 %systemroot%\System32\regsvr32.exe입니다.
    • 32비트 버전은 %systemroot%\SysWoW64\regsvr32.exe입니다.



    regsvr32.exe 사용중 오류는 msdn 문제 해결 방법이 제일 무난한것 같습니다.



    https://support.microsoft.com/ko-kr/kb/249873






    사용방법은


    관리자 권한으로 cmd 를 연 후


    등록 : regsvr32 xxxx.dll

    등록해제 : regsvr32 xxxx.dll /u


    인데


    regsvr32 를 찾지 못할경우 system 경로로 이동하여 실행하거나


    regsvr32 만 필요한 경로에 복사하여 사용하여도 됩니다.



    regsvr32 는 C, CPP, ATL dll 을 올리기 위한 용도이고


    같은 방법으로 regasm 을 활용하면 C# dll 을 올릴수 있습니다.


    3. Install Uitility


    인스톨 쉴드, 인스톨 팩토리등 인스톨 관련 유틸리티를 활용하여


    setup.exe 파일을 만들경우 dll 을 등록하는 메뉴도 있기에 설치하며 등록 할 수도 있습니다.









    'Programming > C,CPP,CS' 카테고리의 다른 글

    Log4cxx Tutorial  (0) 2016.06.28
    Log Librarys  (0) 2016.06.27
    Free Dia Diagram Editor  (0) 2016.04.28
    Windows 버전별 기본 포함 .NET Framework  (0) 2016.04.14
    c# dll ClassLibrary 에서 MessageBox.Show(text,title);  (0) 2016.04.06

    Free Dia Diagram Editor

    Programming/C,CPP,CS 2016. 4. 28. 13:41 Posted by TanSanC
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    Free Dia Diagram Editor


    http://dia-installer.de/



    Screenshot

    Dia
    More screenshots.

    Requirements

    The current Dia release has been tested successfully on Windows 8.1, 8, 7, Windows Vista and Windows XP, Linux and Mac OS X.

    The download page provides download packages for Mac OS X and Linux as well as information about Dia on older Windows versions.

    Troubleshooting

    If you encounter any problems with dia, please read through the FAQ first.

    You should also check the bug reports.

    License

    Dia is free software available under the terms of the GNU GNU General Public License, the GPLv2.




    'Programming > C,CPP,CS' 카테고리의 다른 글

    Log Librarys  (0) 2016.06.27
    ATL,CPP,C# dll 배포  (0) 2016.05.27
    Windows 버전별 기본 포함 .NET Framework  (0) 2016.04.14
    c# dll ClassLibrary 에서 MessageBox.Show(text,title);  (0) 2016.04.06
    .Net FrameWork 버전 확인 방법  (0) 2016.04.05
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    Windows 버전별 기본 포함 .NET Framework


    • Windows XP Media Center Edition (Windows XP SP1) includes the .NET Framework 1.0 + SP2 as an OS component
    • Windows XP Media Center Edition (Windows XP SP2 and higher) includes the .NET Framework 1.0 + SP3 as an OS component.  On Windows XP Media Center Edition, the only way to get the .NET Framework 1.0 SP3 is to install Windows XP SP2 or higher.  There is not a standalone 1.0 SP3 installer for this edition of Windows XP.
    • Windows XP Tablet PC Edition (Windows XP SP1) includes the .NET Framework 1.0 + SP2 as an OS component
    • Windows XP Tablet PC Edition (Windows XP SP2 and higher) includes the .NET Framework 1.0 + SP3 as an OS component.  On Windows XP Tablet PC Edition, the only way to get the .NET Framework 1.0 SP3 is to install Windows XP SP2 or higher.  There is not a standalone 1.0 SP3 installer for this edition of Windows XP.
    • Windows Server 2003 (all x86 editions) includes the .NET Framework 1.1 as an OS component; 64-bit versions of Windows Server 2003 do not include a version of the .NET Framework as an OS component
    • Windows Vista (all editions) includes the .NET Framework 2.0 and 3.0 as OS components  3.0 can be added or removed via the Programs and Fatures control panel.
    • Windows Vista SP1 (all editions) includes the .NET Framework 2.0 SP1 and 3.0 SP1 as OS components.  3.0 SP1 can be added or removed via the Programs and Features control panel.
    • Windows Server 2008 and Windows Server 2008 SP1 (all editions) includes the .NET Framework 2.0 SP1 and 3.0 SP1 as OS components.  The .NET Framework 3.0 SP1 is not installed by default and must be added via the Programs and Features control panel though.
    • Windows Server 2008 SP2 (all editions) includes the .NET Framework 2.0 SP2 and 3.0 SP2 as OS components.  The .NET Framework 3.0 SP2 is not installed by default and must be added via the Programs and Features control panel though.
    • Windows Server 2008 R2 (all editions) includes the .NET Framework 3.5.1 as an OS component.  This means you will get the.NET Framework 2.0 SP2, 3.0 SP2 and 3.5 SP1 plus a few post 3.5 SP1 bug fixes.  3.0 SP2 and 3.5 SP1 can be added or removed via the Programs and Features control panel.
    • Windows 7 (all editions) includes the .NET Framework 3.5.1 as an OS component.  This means you will get the .NET Framework 2.0 SP2, 3.0 SP2 and 3.5 SP1 plus a few post 3.5 SP1 bug fixes.  3.0 SP2 and 3.5 SP1 can be added or removed via the Programs and Features control panel.
    • Windows 8 (all editions) includes the .NET Framework 4.5 as an OS component, and it is installed by default.  It also includes the .NET Framework 3.5 SP1 as an OS component that is not installed by default.  The .NET Framework 3.5 SP1 can be added or removed via the Programs and Features control panel.
    • Windows 8.1 (all editions) includes the .NET Framework 4.5.1 as an OS component, and it is installed by default.  It also includes the .NET Framework 3.5 SP1 as an OS component that is not installed by default.  The .NET Framework 3.5 SP1 can be added or removed via the Programs and Features control panel.
    • Windows Server 2012 (all editions) includes the .NET Framework 4.5 as an OS component, and it is installed by default except in the Server Core configuration.  It also includes the .NET Framework 3.5 SP1 as an OS component that is not installed by default.  The .NET Framework 3.5 SP1 can be added or removed via the Server Manager.
    • Windows Server 2012 R2 (all editions) includes the .NET Framework 4.5.1 as an OS component, and it is installed by default except in the Server Core configuration.  It also includes the .NET Framework 3.5 SP1 as an OS component that is not installed by default.  The .NET Framework 3.5 SP1 can be added or removed via the Server Manager.
    • Windows 10 (all editions) includes the .NET Framework 4.6 as an OS component, and it is installed by default.  It also includes the .NET Framework 3.5 SP1 as an OS component that is not installed by default.  The .NET Framework 3.5 SP1 can be added or removed via the Programs and Features control panel.


    .NET Framework product version



    .NET Framework product version


    Service pack level


    Version


    .NET Framework 1.0


    Original release


    1.0.3705.0 and 7.0.9466.0


    .NET Framework 1.0


    Service pack 1


    1.0.3705.209


    .NET Framework 1.0


    Service pack 2


    1.0.3705.288 and 7.0.9502.0


    .NET Framework 1.0


    Service pack 3


    1.0.3705.6018 and 7.0.9951.0


    .NET Framework 1.1


    Original release


    1.1.4322.573 and 7.10.3052.4


    .NET Framework 1.1


    Service pack 1


    1.1.4322.2032 (if you have the MSI-based 1.1 SP1 installed) or 1.1.4322.2300 (if you have the OCM-based 1.1 SP1 installed on Windows Server 2003) and 7.10.6001.4


    .NET Framework 2.0


    Beta 1


    2.0.40607.16 and 8.0.40607.16


    .NET Framework 2.0


    Beta 2


    2.0.50215.44 and 8.0.50215.44


    .NET Framework 2.0


    Original release


    2.0.50727.42 and 8.0.50727.42


    .NET Framework 2.0


    Service pack 1


    2.0.50727.1433 and 8.0.50727.1433


    .NET Framework 2.0


    Service pack 2


    2.0.50727.3053 and 8.0.50727.3053


    .NET Framework 3.0


    Original release


    3.0.04506.26 (on Windows Vista) and 3.0.04506.30 (on downlevel operating systems)


    .NET Framework 3.0


    Service pack 1


    3.0.04506.648


    .NET Framework 3.0


    Service pack 2


    3.0.04506.2152


    .NET Framework 3.5


    Original release


    3.5.21022.8 and 9.0.21022.8


    .NET Framework 3.5


    Service pack 1


    3.5.30729.1 and 9.0.30729.1


    .NET Framework 4


    Original release


    4.0.30319.1 and 10.0.30319.1





    source : https://blogs.msdn.microsoft.com/astebner/2007/03/14/mailbag-what-version-of-the-net-framework-is-included-in-what-version-of-the-os/


    'Programming > C,CPP,CS' 카테고리의 다른 글

    ATL,CPP,C# dll 배포  (0) 2016.05.27
    Free Dia Diagram Editor  (0) 2016.04.28
    c# dll ClassLibrary 에서 MessageBox.Show(text,title);  (0) 2016.04.06
    .Net FrameWork 버전 확인 방법  (0) 2016.04.05
    C# Class Library use in script  (1) 2016.04.05
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    c# dll ClassLibrary 에서 MessageBox.Show(text,title);


    c# dll 을 만들다가


    c#의 MessageBox를 사용하고 싶을때가 있다.



    그럴때는


    바로


    using System.Windows.Forms;


    하면 안 되고




    System.Windows.Forms 을 참조 해주어야한다.




    VS2013


    [프로젝트이름]우클릭 -> [추가] -> [참조] -> [어셈블리] -> [프레임워크] -> [System.Windows.Forms] 를 체크해주면 해당 라이브러리를 자동으로 참조해준다.



    그 다음 



    using System.Windows.Forms;



    를 쓰고


    MessageBox.Show("mySocket is Null", "strTitle");


    MessageBox 를 사용하면 된다.