廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4185 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
flyinsky5
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][討論] 很急需幫忙,看不懂這些程式碼...
這些程式碼我看不太懂
不知道有哪些好心的大大可以幫我解惑
也幫我註解一下....

#pragma comment (lib, "comctl32.lib")
#pragma comment (lib, "dxguid.lib")
#pragma comment (lib, "strmiids.lib")
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <commctrl.h>
#include <dshow.h>
#include <cstdio>
extern"C" WINBASEAPI HWND WINAPI GetConsoleWindow();
#define MsgBox(s) MessageBox (0,s,0,MB_OK)
WCHAR e_str;
void cdecl MsgBox_ (wchar_t* fmt, ...)
   {swprintf_s (e_str, 256, fmt, (char*)(&fmt+1)); MsgBox(e_str);}
namespace FileDlg
{
    WCHAR title = L"*.*";
    WCHAR filter =
        L"AVI File (*.avi)\0*.avi\0"   
        L"MPEG File (*.mpg)\0*.mpg\0"   
        L"Mp3 File (*.mp3)\0*.mp3\0"   
        L"Wave File (*.wav)\0*.wav\0"   
        L"All Files (*.*)\0*.*\0\0";
    WCHAR file_name, init_dir, exe_path={0}, *fname;
    OPENFILENAME ofn = {
            sizeof(OPENFILENAME), 0, 0, (LPCWSTR)filter,0,0,1, title,
            512, file_name, 512, init_dir, 0, 6, 0,1, L"", 0,0,0
    };
    LPWSTR open (HWND hwnd)
    {
        ofn.hwndOwner    = hwnd;
        ofn.lpstrTitle   = L"開檔";
        ofn.lpstrFilter  = filter;
        ofn.Flags        = 6;
        ofn.lpstrFile = 0;      //若開檔後仍為0表示按了
        if (!GetOpenFileName (&ofn)) {
            if(*ofn.lpstrFile)
                MsgBox_ (L"Fail to open: %d", CommDlgExtendedError());
            return 0;
        }
        return fname = ofn.lpstrFile;       //取個短名字        
    }
}

#define DO(b) if (FAILED(b)) \
              {MsgBox_(L"fail in %s line %d",__FILE__,__LINE__);}

struct Player
{
    bool bPlaying;
    long evCode;
    LONGLONG pos, duration;           
    IGraphBuilder* pGraph;
    IMediaControl* pCtrl;
    IVideoWindow*  pVideo;
    IMediaSeeking* pSeek;
    void init()
    {
        bPlaying = false;
        DO (CoCreateInstance (CLSID_FilterGraph, 0, CLSCTX_INPROC,
                        IID_IGraphBuilder, (void**) &pGraph));
        DO (pGraph->QueryInterface (IID_IMediaControl, (void**) &pCtrl));
        DO (pGraph->QueryInterface (IID_IVideoWindow,  (void**) &pVideo));
        DO (pGraph->QueryInterface (IID_IMediaSeeking, (void**) &pSeek));
    }
    void free ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




獻花 x0 回到頂端 [樓 主] From:歐洲 | Posted:2009-05-12 15:22 |
WindinCloud
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

先說說你哪邊看不懂
若連語法都不懂 那就去找本C/C++的書先k
若是視窗部份看不懂
那就去找本MFC或winapi的書看看

我想裡面都寫的很清楚~


獻花 x0 回到頂端 [1 樓] From:未知地址 | Posted:2009-06-11 00:16 |
daviddr
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x7
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

好眼熟的碼 :-)
總之.. 是 DirectShow 的簡單應用。


獻花 x0 回到頂端 [2 樓] From:臺灣 | Posted:2009-06-27 11:08 |
e122077
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x1
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

如果這看不懂 那就不用寫 win32囉 而且要請人教 但是 卻沒有範圍嗎 ? 全教嗎 ? 這樣會不會 有點太多呢 ? 還是去看 MFC or windows program 相關的書吧


獻花 x0 回到頂端 [3 樓] From:臺灣數位聯合 | Posted:2009-06-30 13:01 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.069655 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言