怎么把.dlx界面框隐藏?

不及无耐 1年前 434 4

怎么把我们自己设计的.dlx界面框隐藏到.dll里面?

看到好多程序都是没有.dlx但是使用时又有UI界面


0

承接UG NX二次开发、功能定制、毕业设计、疑难解决、远程培训,胡君QQ:85585969
最新回复 (4)
  • nxopen 1年前
    1

    将dlx文件加入到资源中,使用的时候写到本地,使用完之后又删除

  • 不及无耐 1年前
    2

    回复1楼(nxopen):用网网上的方式释放文件,控制台可以得到结果,但是NX项目中无报错,没有结果!有遇到过这样的问题吗?怎么解决这个环境的问题呀?弄了好久T_

    //释放文件
    BOOL FreeResFile(DWORD dwResName, LPCSTR lpResType, LPCSTR lpFilePathName)
    {
    	/*
    
    	函数功能:释放资源文件
    	参数说明:DWORD dwResName   指定要释放的资源ID号,如IDR_EXE
    	LPCSTR lpResType 指定释放的资源的资源类型,如"EXE"
    	LPCSTR lpFilePathName 指定释放后的目标文件名,如"D:\\Test.exe"
    	返回值:成功则返回TRUE,失败返回FALSE
    	*/
    	HMODULE hInstance = ::GetModuleHandle(NULL);//得到自身实例句柄
    
    	HRSRC hResID = ::FindResource(hInstance, MAKEINTRESOURCE(dwResName), lpResType);//查找资源
    	HGLOBAL hRes = ::LoadResource(hInstance, hResID);//加载资源
    	LPVOID pRes = ::LockResource(hRes);//锁定资源
    
    	if (pRes == NULL)//锁定失败
    	{
    		return FALSE;
    	}
    	DWORD dwResSize = ::SizeofResource(hInstance, hResID);//得到待释放资源文件大小
    	HANDLE hResFile = CreateFile(lpFilePathName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);//创建文件
    
    	if (INVALID_HANDLE_VALUE == hResFile)
    	{
    		//TRACE("创建文件失败!");
    		return FALSE;
    	}
    
    	DWORD dwWritten = 0;//写入文件的大小	
    	WriteFile(hResFile, pRes, dwResSize, &dwWritten, NULL);//写入文件
    	CloseHandle(hResFile);//关闭文件句柄
    
    	return (dwResSize == dwWritten);//若写入大小等于文件大小,返回成功,否则失败
    
    }



    我用的是这个,没有结果,单独使用函数内部的结构是可以的,但是是空文件


    	测试结果是无法加载资源!
    	 HRSRC hResID = ::FindResource(hInstance, MAKEINTRESOURCE(dwResName), lpResType);//查找资源
    	HGLOBAL hRes = ::LoadResource(hInstance, hResID);//加载资源
    	LPVOID pRes = ::LockResource(hRes);//锁定资源

  • nxopen 1年前
    3

    运行后,你查看本地生成了dlx文件了吗?

  • 不及无耐 1年前
    4

    回复3楼(nxopen): 如果跳过加载资源的三行代码是可以生成的,但是是空文件

请登录后发表新帖