블로그 이미지
별거 없음 ksh8281

카테고리

분류 전체보기 (15)
잡소리 (7)
iFlux (1)
프로그래밍 (7)
Total12,753
Today1
Yesterday0


이 현상은 msdn 예제로 나온 deskband에 해당되는 것인데
DllCanUnloadNow함수에서 무조건 TRUE를 리턴해서 dll이 언로드 되어버려 생긴다..
이 현상을 방지할려면 그 예제의 소스코드에서 2줄만 변경하면 된다.
InterlockedIncrement(&g_cDllRef);
InterlockedDecrement(&g_cDllRef);
이 두가지만 추가해주면 현상을 깨끗하게 없앨 수 있다!!

CDeskBand::CDeskBand()
{
    m_cRef       = 1;
    m_pSite      = NULL;
    m_fHasFocus  = FALSE;
    m_fIsDirty   = FALSE;
    m_dwBandID   = 0;
    m_hwnd       = NULL;
    m_hwndParent = NULL;
  InterlockedIncrement(&g_cDllRef);
}

CDeskBand::~CDeskBand()
{
    if (m_pSite)
    {
        m_pSite->Release();
    }
  InterlockedDecrement(&g_cDllRef);
}

신고
Posted by ksh8281

인터넷에서 샀다.. 가격은 32500원 ㅋㅋ 이건 황당하게 도끼2 벌크를 사은품으로 줬다 ㅋㅋㅋ
음캬캬캬 소리는 E700에서 타격감을 빼고 중고음을 좀 다듬은 느낌?-> 허접한 주관적인 느낌
후회 안하고 잘 쓸만한 좋은 제품인것 같다 유코텍 만세!!
신고
Posted by ksh8281

용산가서 938000원에 업어왔다 .. ㅋㅋ 싸게 산거같다
신형 플렛폼이 탐나지만 가난한지라..
사용소감을 말해보자면.. 이거슨 진리 ㅋㅋㅋ
발열과 소음이 절대적으로 없다.. 완성도도 좋고 예전에 쓰던 에버라텍에 비하면 넘사벽이다 .. ㅋㅋ


신고
Posted by ksh8281


이코드는 작업표시줄 우클릭-도구모음에서 체크 해놓았을때만 동작함.
억지로 체크 되게 하는것은 xp+ie6에서는 죽어도 안됨 ㅠㅠㅠㅠㅠㅠ
Vista에서는 CLSID_ITrayDeskBand 인가? 이걸로 하면 졸라쉬움..

1. 보이기

CoInitialize(NULL);
 HRESULT hr;

 CLSID CLSID_내꼬= { 0xa7287b11, 0xd0e8, 0x4b96, { 0x9b, 0x62, 0x69, 0xc8, 0xce, 0x5d, 0x59, 0xda } };

 IBandSite * pBandSite;
 hr = CoCreateInstance(CLSID_TrayBandSiteService,NULL, CLSCTX_SERVER,IID_IBandSite,(LPVOID *)&pBandSite);

 if(SUCCEEDED(hr))
 {
  IDeskBand * pBand = 0;
  DWORD bandID = 0;

  int i = 0;
  while(pBandSite->EnumBands(i, &bandID) == S_OK)
  {
   // Get the band object.
   i++;
   pBandSite->GetBandObject(bandID, IID_IDeskBand,(void **) &pBand);
   IPersist * pPersist = 0;
   if(SUCCEEDED(pBand->QueryInterface(IID_IPersist,(void**)&pPersist)))
   {
    CLSID clsid = CLSID_NULL;
    pPersist->GetClassID(&clsid);
    if (clsid == CLSID_내꼬)
    {
     // Found the band, so get its window handle.
     pBandSite->SetBandState(bandID,BSSF_VISIBLE,UINT_MAX);
    } 
    pPersist->Release();

   }

pBand->Release();
  }

  pBandSite->Release();
 }


 CoUninitialize();

2. 숨기기
CoInitialize(NULL);
 HRESULT hr;

 CLSID CLSID_내꼬= { 0xa7287b11, 0xd0e8, 0x4b96, { 0x9b, 0x62, 0x69, 0xc8, 0xce, 0x5d, 0x59, 0xda } };

 IBandSite * pBandSite;
 hr = CoCreateInstance(CLSID_TrayBandSiteService,NULL, CLSCTX_SERVER,IID_IBandSite,(LPVOID *)&pBandSite);

 if(SUCCEEDED(hr))
 {
  IDeskBand * pBand = 0;
  DWORD bandID = 0;

  int i = 0;
  while(pBandSite->EnumBands(i, &bandID) == S_OK)
  {
   // Get the band object.
   i++;
   pBandSite->GetBandObject(bandID, IID_IDeskBand,(void **) &pBand);
   IPersist * pPersist = 0;
   if(SUCCEEDED(pBand->QueryInterface(IID_IPersist,(void**)&pPersist)))
   {
    CLSID clsid = CLSID_NULL;
    pPersist->GetClassID(&clsid);
    if (clsid == CLSID_내꼬)
    {
     // Found the band, so get its window handle.
     pBandSite->SetBandState(bandID,BSSF_VISIBLE,0);
    } 
    pPersist->Release();
  }

pBand->Release();
  }

  pBandSite->Release();
 }


 CoUninitialize();

신고
Posted by ksh8281
IBandInfo 인터페이스의
GetBandInfo(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO *pdbi)
를 이용해서 정보를 전달하게 되는데..
작업표시줄이 세로로 변하면 dwViewMode 통해서 세로 여부가 통지 된다..
여기서 주의 할 점은 세로 상태일 때는
pdbi->ptMinSize.y = BAND_VERT_X_SIZE;
pdbi->ptMinSize.x = BAND_VERT_Y_SIZE;
처럼 x,y값을 바꿔 넣어야 된다.. 이것의 MS의 배려인가 농간인가 -_- MSDN에 이런건 좀 써넣으면 좋잖아 ...ㅜㅜㅜ

신고
Posted by ksh8281
나는 현재 알고 있는 것이 MFC 밖에 없다.. 근대 솔직히 빠르기는 하지만
크로스 플렛폼도 안되고.. 만드는 것도 오래 걸리고 빠르고 윈도우에서 돌아가고
익숙하다는 것 이외에는 별로 좋은 점을 모르겠다.
이참에 갈아타고 싶은데 C#으로 갈지 QT로 갈지 아님 JAVA로 갈지 고민중인데
솔직한 내맘은 거의 QT로 기울어 진거 같다.. 한번 해보고 싶다 QT
새로 언어 배울 필요도 없고 리눅스 윈도우 맥 다되고 UI뿐만 아니라 다른것도 다 제공해 주니깐..
이참에 강컴이나 들어가봐야 겠다.
신고
Posted by ksh8281
TAG c#, Java, MFC, QT, 선택

2월 동안에 한일

잡소리 / 2010.02.28 01:43

TCP/IP 소켓 프로그래밍 쪼금? udp도 연구해봐야 겠다
다른것?
없음.... 앞으로는 이러지 맙시다

3월에 할일
STL 책 다 읽기!
QT,영어,리눅스 프로그래밍 해보기..

조금씩 조금씩 사부작 사부작!
신고
Posted by ksh8281

어쩌다가 ffmpeg 컴파일을 하게 되었는데

vc의 훌륭함을 체감하고 있다.. -_-

컴파일을한다는게 보통일이 아닌데

해야 하시는 분들은

아래의 링크들을 참고해서 해보시기 바란다..

http://angelluciper.tistory.com/

http://arrozcru.no-ip.org/ffmpeg_wiki/tiki-index.php?page=HomePage

여기 두군데 정도면 할수 있더라.. ㅠㅠ

그대로 따라 했는데 안되는건 머지!!!

신고
Posted by ksh8281

ffmpeg를 이용해서 윈도우에서 미디어 플레이어를 만들수있다는 사실을 알고서

이리 저리 연구 해보았으나 결과는 처참 -_- 원래 리눅스 프로젝트라 윈도우로 따로 컴파일을 해야 된덴다..

컴파일 과정은 정말 까다롭기 그저 없었고 그대로 따라해도 안되더라 ㅠ_ㅠ

그치만 구글신이 나에게 내려준 선물이 있었으니

주기적으로 win32 컴파일을 해서 올려주는 사이트가 있었으니...

http://arrozcru.no-ip.org/ffmpeg_builds/

여기서 받으면 된다... 난 그냥 dll형태의 lshared 파일을 받아서 썼다.. ㅋㅋ

저기서 받아서 lib추가하고 h추가 해서 쓰면 된다.

주의할점이 있다면 호출 규약이 __stdcall이면 안되고

__cdecl 이어야 한다는점.

인클루드 할때

#define EMULATE_INTTYPES
extern "C"{
#include <ffmpeg/avformat.h>
#include <ffmpeg/avcodec.h>
};

이런식으로 해주어야 한다는점......

신고
Posted by ksh8281
저희가 만든 작은 프로그램 iFlux 2 에 대해서 소개 합니다.

 iFlux 2에 대한 소개에 앞서 약 1년전 저희 fluxteam은 마찬가지의 방법으로 iFlux 2의 모태 iFlux를 공개한 바가 있습니다. 많은 커뮤니티들에서 격려 댓글을 받고, 총 3000건이 넘어가는 다운로드를 기록하였습니다.



총 3000건여건의 다운로드 히트를 기록한 iFlux 

 하지만, iFlux에 대한 부정적인 댓글들을 보며 iFlux의 한계에 대해서 생각해보게 되었습니다. 키보드 조작이 편리하다고 생각했지만, 일반적으로 음악재생기를 이용하는 분들에게는 크게 이점이 되지 않았다는 점을 댓글들을 통해 깨달은 것입니다. iFlux의 근본적인 부분에 대한 문제로 한계에 부딫힌 저희는 새로운 음악재생기의 제작을 생각하고 있었고, 약 6개월 정도의 개발을 통해 "검색이 편리한 음악재생기, iFlux 2" 를 제작하였습니다.

 iFlux가 "mp3player"를 닮은 음악재생기 였다면, 이번에는 힘들게 음악을 찾지 않아도 되는 "검색이 편리한 음악재생기, iFlux 2"를 컨셉으로 하였습니다. 물론, 기존 iFlux의 많은 장점들은 채용하면서, iFlux 2만의 특징을 살리기 위해 많은 노력을 하였고, 그 모습은 다음과 같습니다.



iFlux 2 default 스킨에서 "소녀시대"를 검색한 모습


 일반적인 음악재생기처럼 이용자의 편의를 위해 창이 분리되는 형태를 iFlux 2에서 구현하였습니다. 이 방식이 가장 일반적이고, 이전 음악재생기를 사용하던 이용자들이 가장 이용하기가 쉽다고 생각하였기 때문입니다. 윈도우의 모습에서 특징적인 부분은 바로 "브라우저"윈도우로 루트폴더 설정을 통해 루트폴더 내의 음악을 브라우저에서 검색할 수 있고, 그 안에 곡을 태그 브라우징을 통해 이용할 수도 있으며, 검색창을 이용해 검색을 할 수도 있습니다. 앞서 말한 몇 가지 방법들로 곡을 찾을 수 있다는 것이 iFlux 2가 가지는 가장 큰 장점 입니다.
그 외의 특이한 점을 들자면 탭 플레이리스트입니다.



iFlux 2의 탭 플레이리스트 기능

 마치, IE7이나 FireFox의 브라우저를 보는 듯한 Tab 플레이리스트의 모습입니다. 다양한 플레이리스트를 한눈에 볼수 있어서 이전 플레이리스트 들 보다 곡의 관리가 더 편하고 자신이 원하는 곡을 언제든지 바꿔가면서 들을 수 있습니다. 그 이외에도 루트폴더 파일찾기 , 태그브라우저, 파일연결 기능, 타이머기능, 그래픽 이퀄라이저 조정 등의 다양한 기능이 존재합니다.



iFlux 2의 루트폴더 파일찾기와 태그브라우징 기능

 위는 앞서말한 루트폴더 파일 찾기와 태그브라우징으로, 루트폴더 파일 찾기는 iFlux 2에서 별 다른 큰 동선 없이 루트폴더에 있는 음악파일을 윈도우 탐색기를 검색하는 것 처럼 이용할 수 있습니다. 태그브라우징은 말 그대로 파일내부에 존재하는 태그정보를 읽어서 아티스트 - 앨범 - 제목 순으로 정렬시켜 폴더 방식을 이용하지 않고도 음악을 편하게 이용할 수 있게 해줍니다.



윈도우의 구조와 위치까지 변경 가능한 스킨 기능

 물론, 이 이외의 중요한 한 기능은 iFlux의 장점을 채용한 기능으로, iFlux에서의 가장 강력한 기능인 구조까지 변경되는 스킨기능을 윈도우 창의 구조 및 위치까지 이동한 스킨기능으로 발전시켰습니다. 따라서 iFlux 2에서도 iFlux와 마찬가지로 다양한 스킨들을 만날 수 있습니다.

 iFlux 2는 "검색이 편리한 음악재생기"에 걸맞는 다양한 기능으로 무장하고 있습니다.
 열심히 제작한 프로그램이니 만큼 많은 관심과 함께 다운로드 그리고, 앞으로의 iFlux 2의 진화는 여러분의 버그리포트와 개선사항에 달려있습니다. 꼭 한번 쯤 사용해주시고, 사용소감도 밑 주소에 남겨주셨으면 합니다. ㅠㅠ

 이 글을 쓴 저는 디자인, 홍보, 컨셉을 맞은 fluxteam의 큐브이구요.
 프로그래밍, 컨셉은 fluxteam의 ksh8281군이 수고해 주었습니다.
 앞으로도 계속 나아갈 fluxteam의 두번째 작품 "iFlux 2" 많은 관심 부탁드립니다!



 주요특징 및 기능
 - 마우스를 이용한 직관적인 인터페이스
 - 루트폴더 설정 및 검색기능
 - 구조 및 위치까지 변경되는 스킨 기능
 - 탭 플레이리스트
 - 그래픽 10band EQ
 - 타이머 기능
 - 뮤직 라이브러리 (태그브라우징)
 - 태그 정보까지 검색되는 검색기능
 - 부지런한 프로그래머?!?!

iFlux 2 관련 URL 모음
검색이 편리한 음악재생기, iFlux 2 Official site
http://iflux.bycube.net

검색이 편리한 음악재생기, iFlux 2 Official site - 소개 (본 글의 소개 부분이 더 나음)
http://iflux.bycube.net/introduce.php

검색이 편리한 음악재생기, iFlux 2 Official site - 다운로드
http://iflux.bycube.net/bbs/board.php?bo_table=iflux_update

검색이 편리한 음악재생기, iFlux 2 Official site - 게시판 (버그, 건의, 자유)
http://iflux.bycube.net/bbs/board.php?bo_table=iflux_bbs

sp.Thanks http://coms.kw.ac.kr


신고
Posted by ksh8281

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

티스토리 툴바