BOOL CplayDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
HWND hwnd;
CString m_hwnd;
//得到hwnd,IDC_PIC是对话框中某个picture control的ID。
hwnd = GetDlgItem(IDC_STATIC)->GetSafeHwnd();
//设置环境变量并初始化sdl
//m_hwnd.Format(_T("%d"), hwnd);
//SetEnvironmentVariable((LPCWSTR)"SDL_WINDOWID", (LPCWSTR)m_hwnd);
//if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER))
//{
// msg.Format(_T("Could not initialize SDL - %s\n"), SDL_GetError());
// AfxMessageBox(msg);
// exit(1);
//}
int argc=8;
char p2[128];
sprintf(p2, "%lu", hwnd);
char *p1[] = {"1","-wid",p2,"-x","320","-y","240","d:/dev/media/001.mp4",NULL} ;
char **p = p1;
//p = new char *[8];
//for(int i=0; i< argc;i++)
//{
// p[i] = new char[128];
// //memset(p[i], 128,0x00);
//}
//p[0] = "1";
//p[1] = "-wid";
//sprintf(p1[2], "%lu", hwnd);
//p[3] = "-x";
//p[4] = "320";
//p[5] = "-y";
//p[6] = "240";
//p[7] = "d:/dev/media/001.mp4";
FFQLAY_main(argc, p);
//FFPLAYLIB int FFQLAY_main(int argc, char **argv);
return TRUE; // return TRUE unless you set the focus to a control
}
/*******************************************/
参考
int main(int argc, char* argv[]) 和
int main(int argc, char** argv)
char* 和 char[] 的定义方式是等价的
定义方式是等价的,但初始化是不同的,参考[0],[2]
//! [0]
int argc=8;
char *p[8];
for(int i=0; i< argc;i++)
{
p[i] = new char[128];
memset(p[i], 0x00,128);
}
//! [0]
//! [1]
strcpy(p[0], "ddddddddd");
char **p1 = p;
//! [1]
//! [2]
/*char **p2;
for(int i=0; i< argc;i++)
{
p2[i] = new char[128];
memset(p[i], 0x00,128);
}*/
//! [2]
//! [3]
for(int i=0; i< argc;i++)
{
delete p[i];
p[i] = NULL;
}
//! [3]
/*********************************************************/
http://www.ertou.linuxpk.com/space-25219-do-blog-id-6781.htmlchar *argv[4] 和 char (*arg)[4]的区别
这两个东西弄到一起来看好像就晕了,其实在代码里都有见过,下面结合代码来分析一下:
char *argv[4]
这个很常见,在main函数中的参数就有这个东西。
int main(int argc, const char* argv[])
{
const char *param;
for(i = 1;i param = argv[i];
}
}
char (*arg)[4]
这个东西可能不太常见其实我也写过的,只是没有仔细去想。代码如下:
struct list {
char listValue[MAX_NUM][LEN];
int listNum;
};
struct list delSuccessList;
char (*p_del_success)[LEN] =delSuccessList.listValue;
总结:
其实这两个东西都是指向二维数组。
char *argv[4] 含义argv指向一个二维数组,这个数组的第一维长度为4(既有4个元素)
char (*arg)[4] 含义 arg指向一个二维数组,这个数组的第二位长度为4(即每个元素的最大长度为4)
阅读(2874) | 评论(0) | 转发(0) |