如何调用系统对话框

CString pszDllName="shell32.dll";

HINSTANCE hLib = ::LoadLibrary(pszDllName);

char p[256];

HICON ico;

//这儿我感觉参数应该是LPCWSTR, 但是网上说得是LPCTSTR

typedef void (__stdcall *pRunFileDlg)(HWND,HICON, LPCTSTR,LPCTSTR,LPCTSTR, UINT);

pRunFileDlg RunFileDlg;

if (hLib==NULL)
{
return ;
}

RunFileDlg = (pRunFileDlg)GetProcAddress(hLib, (char *)61);

CString name ="wolfbaby的运行";
CString sss = "输入程序路径";

LPWSTR wname=new WCHAR[100];

LPWSTR wsss=new WCHAR[100];

memset(wname,0,sizeof(WCHAR)*100);
memset(wsss,0,sizeof(WCHAR)*100);
MultiByteToWideChar(CP_ACP,
                    MB_PRECOMPOSED,        // character-type options
                    name,                  // address of string to map
                    name.GetLength(),      // number of bytes in string
                    wname,                 // address of wide-character buffer
                    100);    
//必须先转换到宽字符,否则后面调用的时候,结果会不对!

MultiByteToWideChar(CP_ACP,
      MB_PRECOMPOSED,        // character-type options
                    sss,                   // address of string to map
                    sss.GetLength(),       // number of bytes in string
                    wsss,                  // address of wide-character buffer
                    100);

if(RunFileDlg!=NULL)

{

RunFileDlg(this->GetSafeHwnd(),NULL,NULL,(LPCTSTR)wname,(LPCTSTR)wsss,0x02);      

}
::FreeLibrary(hLib);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值