如何调用系统对话框

本文详细介绍了如何使用Shell32.dll库中的RunFileDlg函数来实现文件对话框的功能,包括加载库、获取函数地址、转换字符串为宽字符、调用函数并释放内存。
部署运行你感兴趣的模型镜像

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);

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值