广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4199 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.058573 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言