
BOOL COscillDlg::AssoilInlaidResource(CString sDllName, UINT nResourceID, CString sOutputFileName, CString sExtendName)
{
ASSERT(!sOutputFileName.IsEmpty())
ASSERT(!sExtendName.IsEmpty())
LPTSTR Name = MAKEINTRESOURCE(nResourceID)// IDR_SWF资源名称。
HINSTANCE hImage = NULL
// 界面库句柄
// 载入界面库
if (!sDllName.IsEmpty())
{
hImage = LoadLibrary(sDllName)
if (hImage <(HINSTANCE)HINSTANCE_ERROR)
{
AfxMessageBox(sDllName)
return FALSE
}
}
HRSRC res = FindResource(hImage, Name, sExtendName)// "swf" 资源类型。
if (res == NULL)
{
AfxMessageBox(SwitchGetErr(GetLastError()))
return FALSE
}
HGLOBAL gl = LoadResource(hImage, res)
if (gl == NULL) return FALSE
LPVOID lp = LockResource(gl)//返回指向资源内存的地址的指针。
if (sOutputFileName.Find('.') == -1)// 没有找到扩展名
{
::MessageBox(NULL, TEXT("扩展名不对"), TEXT("error"), MB_OK)
return FALSE
}
DeleteFile(sOutputFileName)
// CREATE_ALWAYS为不管文件存不存在都产生新文件。
// ***CreateFile() 默认使用当前.exe文件路径创建文件。
// 创建的是一个隐藏属性的文件 FILE_ATTRIBUTE_HIDDEN
HANDLE fp = CreateFile(sOutputFileName, GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_HIDDEN, NULL)
DWORD a
//sizeofResource 得到资源文件的大小
if (!WriteFile(fp, lp, SizeofResource(hImage, res), &a, NULL))
return FALSE
CloseHandle(fp)//关闭句柄
FreeResource(gl)//释放内存
if (!sDllName.IsEmpty())
{
FreeLibrary(hImage)
}
return TRUE
}
if (AssoilInlaidResource(_T("ShockwaveFlashControl.dll"), IDR_SWF1, _T("C:\\Temswf.swf"), _T("SWF")))
{
AfxMessageBox(_T("SUS"))
}
else
{
AfxMessageBox(_T("文件不存在"))
}
CString COscillDlg::SwitchGetErr(DWORD n)
{
CString errStr
switch (n)
{
case 1813:
errStr= _T("资源类型不对")
break
default:
break
}
return errStr
}
vs2013sql资源管理器菜单里面。使用方法如下:1、打开vs2013sql。
2、点击菜单视图-SQLserver对象资源管理器。
3、右键点击SQLServer节点,选择添加SQLServer即可自动生成。
1、添加工程的头文件目录:工程-属性-配置属性-c/c++-常规-附加包含百目录度:加上头文件存放目录。2、添加文件引用的lib静态库路径:工程知-属性-配置属性-链接器-常规-附加库目录:加道上lib文件存放目录。
然后添加工程引用的专lib文件名:工程-属性-配置属性-链接器-输入-附加依赖项:加上lib文件名。
3、添加工程引用的dll动态库:把引用的dll放到工程的可执行文件所在的目录下属。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)