'조각지식'에 해당되는 글 18건

  1. 2009.03.19 구조체의 char data[1]의 역할은..?
  2. 2008.12.08 Non Client 영역 칠하기 ( ex : 타이틀 바 )
  3. 2008.04.12 GoF Design Pattern 요약
  4. 2007.08.07 P/Invoke
  5. 2007.08.07 C#과 C++ 사이의 interop
  6. 2007.05.04 이펙트 블랜딩 공식
  7. 2007.05.03 사양측정
  8. 2007.04.13 버텍스포멧

이곳을 참조

요약하면...

1. 장점
  a. 파일쓰기등의 데이터저장시 구조체를 한번에 저장할 수 있다.
      ( 헤더와 데이터부분을 한방에 fwrite )
  b. 논란의 여지가 있겠지만 캐시미스를 줄일수 있다.

2. 단점
  a. 이런 글을 봐야할 정도로 코드가 바로 이해되지 않는다.

3. 왜 data[0]이 아니고 data[1]인가..
  => 일부 컴파일러의 에러 피하기

4. 1바이트가 남는것이 아닌가..?
 남는다. Align까지 생각하면 4바이트가 남을수도 있다. 하지만
 char data[1] 을 char *pData로 바꾸면..? 이때도 결국 4바이트가 쓰인다.
 피장파장...

이렇게 써본적도 없고, 앞으로도 있을까 싶긴하지만 알아둬서 나쁠건 없으니..
 

'조각지식' 카테고리의 다른 글

함수호출규약  (0) 2009.03.31
명시적 타입 변환 ( 캐스팅 )  (0) 2009.03.31
구조체의 char data[1]의 역할은..?  (0) 2009.03.19
Non Client 영역 칠하기 ( ex : 타이틀 바 )  (0) 2008.12.08
GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
Posted by 자갈공명 zagalnet

댓글을 달아 주세요

 case WM_NCPAINT:
 case WM_NCACTIVATE:
  {
       HDC hDC = GetWindowDC( hWnd );
       if( hDC )
       {
            // 디폴트 리젼 제거 ( XP는 위쪽이 둥그니까.. )
            SetWindowRgn( hWnd, NULL, false );
            // Draw는 여기서..
            ReleaseDC( hWnd, hDC );
       }

        if( uMsg == WM_NCPAINT )
             return 0;
        if( uMsg == WM_NCACTIVATE )
             return TRUE;
  }
  break;

요는 WM_NCACTIVATE...
WM_NCPAINT는 쉽게 알게되는 반면에 WM_NCACTIVATE도 처리해줘야 한다는건
잘 안나온다. 비활성/활성으로 상태변경시 이 메세지가 오는데 이것도 처리해주지
않으면 다시 기본타이틀 모양으로 바뀌어 버린다. 그리고 WM_NCACTIVATE시에
리턴값이 TRUE여야 출력이외의 창간 우선순위처리들이 수행된다.

더 자세한것은 당연히 MSDN을..

'조각지식' 카테고리의 다른 글

명시적 타입 변환 ( 캐스팅 )  (0) 2009.03.31
구조체의 char data[1]의 역할은..?  (0) 2009.03.19
Non Client 영역 칠하기 ( ex : 타이틀 바 )  (0) 2008.12.08
GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
C#과 C++ 사이의 interop  (0) 2007.08.07
Posted by 자갈공명 zagalnet

댓글을 달아 주세요

사용자 삽입 이미지



사용자 삽입 이미지

'조각지식' 카테고리의 다른 글

구조체의 char data[1]의 역할은..?  (0) 2009.03.19
Non Client 영역 칠하기 ( ex : 타이틀 바 )  (0) 2008.12.08
GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
C#과 C++ 사이의 interop  (0) 2007.08.07
이펙트 블랜딩 공식  (0) 2007.05.04
Posted by 자갈공명 zagalnet

댓글을 달아 주세요

P/Invoke

조각지식 2007. 8. 7. 23:41

닷넷에서 C나 C++로 작성한 DLL의 함수를 호출하려면 P/Invoke를 이용해야 합니다. 이것은 Interop이라는 일종의 서비스이데 직접 Native 코드를 호출하는 것과는 다릅니다. 당연히 속도도 직접 호출의 경우보다는 좀 떨어지겠죠. 그렇지만 기존에 작성된 코드를 사용할 수 있다는 점에서 유용합니다.

만약 C로 작성된 다음과 같은 함수가 MyDLL.dll에 있다고 해보죠.

int AddInteger(int a,int b)
{
    return a + b;
}


C#에서 이 함수를 호출하려면 다음과 같은 선언을 해줘야 합니다.

using System;
using System.Runtime.InteropServices; //P/Invoke를 하려면 이걸 선언해 줘야 합니다.

class PlatformInvokeTest
{
    [DllImport("MyDLL.dll")]  //만약 함수명이 다를 경우 EntryPoint="function_name" 을 지정해줘야 합니다.
    public static extern int AddInteger(int a,int b); 
    //외부에 정의된 함수이므로 extern을 지정해줘야 하고 static이어야 합니다.

    public static void Main()
    {
        int i = AddInteger(1, 2);
        Console.WriteLine(i);
    }
}


더 자세한 내용은
Calling Win32 DLLs in C# with P/Invoke

'조각지식' 카테고리의 다른 글

Non Client 영역 칠하기 ( ex : 타이틀 바 )  (0) 2008.12.08
GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
C#과 C++ 사이의 interop  (0) 2007.08.07
이펙트 블랜딩 공식  (0) 2007.05.04
사양측정  (0) 2007.05.03
Posted by 자갈공명 zagalnet

댓글을 달아 주세요

출처 : cafe.naver.com/monodevelop

C++클래스를 C#에서 직접 래핑을 할지 C++/CLI 를 써야할지 고민중인 요즘인데....
일단 확보한 C++ => C#방안..

계속적으로 수정될것이고 그 양도 방대해질건데...
C#이던 C++/CLI이던 상당한 노가다가 필요하다고 보여져서 망설여진다..

'조각지식' 카테고리의 다른 글

GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
C#과 C++ 사이의 interop  (0) 2007.08.07
이펙트 블랜딩 공식  (0) 2007.05.04
사양측정  (0) 2007.05.03
버텍스포멧  (0) 2007.04.13
Posted by 자갈공명 zagalnet

댓글을 달아 주세요

- 회색 만들기 ( 루미넌스 )

  GRAY=(R*30 + G*59 + B*11)/100


- 포토샵의 블랜딩 공식

  http://dunnbypaul.net/blends/

- 포토샵 노말 블랜딩 공싱
FINALrgb = DSTrgb x ( 1 - SRCrgb x DIFFUSEa ) + SRCrgb x DIFFUSEa

 - 포토샵 블랜딩공식코드 ( 현재 구글에서 저장된 페이지를 봐야함 )
   http://www.nathanm.com/photoshop-blending-math/


- 그 옛날 16비트 알파블랜딩 ( 출처 하이텔 )

'조각지식' 카테고리의 다른 글

GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
C#과 C++ 사이의 interop  (0) 2007.08.07
이펙트 블랜딩 공식  (0) 2007.05.04
사양측정  (0) 2007.05.03
버텍스포멧  (0) 2007.04.13
Posted by 자갈공명 zagalnet

댓글을 달아 주세요

사양측정

조각지식 2007. 5. 3. 17:42
- CPU 속도 체크

  http://www.codeproject.com/system/camel.asp


- 시스템 메모리

  MEMORYSTATUS MemStatus;

  MemStatus.dwLength=sizeof(MemStatus);

  GlobalMemoryStatus(&MemStatus);


- 비디오메모리

  DX9 이상은 부정확하므로..DX7을 가져온다..꼭 이래야 하는지....

  ( Game Coding Complete 참고 )

#include <ddraw.h>

  ...


  m_MaxAllocMem = m_pDevice->GetAvailableTextureMem();


  /////

 
LPDIRECTDRAW7 lpDD = NULL;

  DDSCAPS2      ddsCaps2;

  DWORD         dwTotal;

  DWORD         dwFree;

  HRESULT       hr;


  hr = DirectDrawCreateEx(NULL, (VOID**)&lpDD, IID_IDirectDraw7, NULL );

  if (FAILED(hr))

      return FALSE;


  // Initialize the structure.

 
ZeroMemory(&ddsCaps2, sizeof(ddsCaps2));


  ddsCaps2.dwCaps = DDSCAPS_VIDEOMEMORY | DDSCAPS_LOCALVIDMEM;

  hr = lpDD->GetAvailableVidMem(&ddsCaps2, &dwTotal, &dwFree);

  if (FAILED(hr))

      return FALSE;


  if(lpDD)

      lpDD->Release();

'조각지식' 카테고리의 다른 글

GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
C#과 C++ 사이의 interop  (0) 2007.08.07
이펙트 블랜딩 공식  (0) 2007.05.04
사양측정  (0) 2007.05.03
버텍스포멧  (0) 2007.04.13
Posted by 자갈공명 zagalnet

댓글을 달아 주세요

버텍스포멧

조각지식 2007. 4. 13. 11:54
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/programmingguide/GettingStarted/VertexFormats/vformats.asp


2007년 2월버전으로 업데이트했더니 이 그림이 도움말에서 없어졌다....

'조각지식' 카테고리의 다른 글

GoF Design Pattern 요약  (0) 2008.04.12
P/Invoke  (0) 2007.08.07
C#과 C++ 사이의 interop  (0) 2007.08.07
이펙트 블랜딩 공식  (0) 2007.05.04
사양측정  (0) 2007.05.03
버텍스포멧  (0) 2007.04.13
Posted by 자갈공명 zagalnet

댓글을 달아 주세요