小编smi*_*mit的帖子

给定linux用户名和密码,如何测试它是否是有效帐户?

所以我的问题是直接给出一个linux用户名和密码如何测试它是否是一个有效的帐户?

linux passwords hash crypt username

19
推荐指数
1
解决办法
4万
查看次数

为什么我的编辑控件在我的win32 c ++应用程序中看起来很奇怪而不使用MFC?

我有这个程序,我创建了一个窗口,在里面,我添加了一个使用普通C(没有MFC或对话框)的编辑控件,编辑控件创建代码是

hWnd=::CreateWindowExA(NULL,      //no extended style
                     "EDIT",     
                      NULL,           //no title       
                      WS_CHILD|WS_VISIBLE|WS_BORDER,      
                      x,          
                      y,        
                      Width,      
                      Height,    
                      hWndParent,
                      (HMENU)id,
                      (HINSTANCE) GetWindowLong(hWndParent, GWL_HINSTANCE),//the module instance
                      NULL);
Run Code Online (Sandbox Code Playgroud)

但渲染的控件看起来很难看......

在此输入图像描述


这就是我希望我的控件看起来像......

酷vista主题编辑控件

我试着打电话InitCommonControlsEx和包括comctl32.lib但没有改变.
我想添加一个描述所有依赖项的应用程序清单文件可以解决问题,但我不知道如何使用Visual Studio 1010 IDE(我自己无法编辑清单文件)

是否有可能只使用c/c ++(没有MFC或.NET之类的东西)来获得正常的vista样式控件.如果添加清单资源可以解决问题,那么我如何编写/生成一个清单文件并将其添加到我的exe?

#include<Windows.h>
#include <commctrl.h >
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#pragma comment(lib,"comctl32.lib")

HWND hwndEdit;
LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wp,LPARAM lp)
{
switch(uMsg)
{
case WM_CREATE:
    hwndEdit = CreateWindow( 
            "EDIT",     /* predefined class                  */ 
            NULL,       /* no window title                   */ 
            WS_CHILD | WS_VISIBLE | …
Run Code Online (Sandbox Code Playgroud)

c++ winapi appearance editcontrol

5
推荐指数
2
解决办法
7136
查看次数

如何高效渲染双缓冲窗口,没有任何撕裂效果?

我想创建自己的小型无窗口GUI系统,因为我正在使用GDI +.我不能在这里发布代码因为它很大(c ++)但是下面是我遵循的主要步骤...

  1. 创建一个大小等于应用程序窗口的位图.
  2. 对于所有鼠标和键盘事件,更新自定义控件状态(例如,如果鼠标当前保持在特定控件上等)
  3. 对于WM_PAINT事件,将背景绘制到屏幕外位图,然后在其上绘制所有更新的控件,最后通过Graphics :: DrawImage(..)调用将整个屏幕外图像复制到前缓冲区.
  4. 对于WM_SIZE/WM_SIZING,删除先前的屏幕外位图,并创建另一个具有新窗口大小的位图.

还有一些检查可以防止重复绘制控件,即控件仅在需要重新绘制时绘制,换句话说当控件的状态发生变化时才会被绘制等等.

系统工作正常但只有一个例外......当窗口正在调整大小时会出现某种撕裂效果.我的意思是撕裂效果我会试着解释一下......

当我拖动边框时,在尺寸边缘/边框上有一个闪烁的间隙.就好像我的DrawImage()函数立即返回,而当一个交换操作完成一半时,另一个图像绘制开始.

现在您可能认为在许多其他应用程序中发生的常见工件是因为调整后台缓冲区并不总是像调整窗口大小一样快但是在其他应用程序中我注意到在其他应用程序中虽然窗口大小和客户端之间存在一条腿区域大小随着窗口的大小增加,边缘附近没有任何闪烁(它通常只是白色背景,沿着边界显示为细的均匀条带).此外,随着窗口调整大小而移动的动态控件在调整大小期间会变得不稳定.

起初,在我看来,使用恒定的全屏尺寸屏幕外表面可以最大限度地减少伪影,但是当我尝试它时,结果并不令人满意.我还尝试在调整大小期间调用Sleep(),以便在另一次翻转开始之前完全翻转,但奇怪的是,这对我来说不起作用!

我听说过vista上的GDI不是硬件加速的,这可能是问题吗?

另外我想知道像Qt这样的框架如何平滑地呈现无窗口GUI,即使你非常快速地调整复杂的Qt GUI窗口,也可以忽略不计出小工件.据我所知,Qt可以使用opengl进行GUI渲染,但这是第二种选择.

如果我使用directx那么实时调整大小就更难了,另一方面,opengl似乎很适合调整大小而没有任何问题但是我将放弃GDI +的所有2D绘图功能.

如果你们中有人做过这样的事情,请指导我.此外,如果你有任何指针,我应该考虑自定义用户界面设计,然后提供链接.

谢谢!

我总是希望设计像windows media player 11这样的界面,但是有人可以告诉我c ++程序员有一个直接的解决方案(我想知道如何而不是使用现有的框架等)?子类,所有者绘图,自定义绘图似乎没有给你这样的控制水平,我不知道用常见控件绘制半透明控件的方法,所以我认为这个问题值得特别注意.再次感谢.

c++ user-interface gdi+ custom-controls

5
推荐指数
1
解决办法
1899
查看次数

为什么msvcrt.dll会自动链接,即使我只使用os api?

我正在使用vs2010,每当我构建任何Windows应用程序(不使用mfc或标准库-only raw api)时,msvcrt.dll都会链接到它.有很多应用程序在vs上编译但没有这种依赖.

如何从我的应用程序中删除msvcrt.dll依赖项.

c++ visual-studio

4
推荐指数
1
解决办法
1683
查看次数

Qt使用哪种图形技术来呈现其自定义UI?

我使用窗口间谍工具检查了Qt GUI界面,我知道它不使用Windows公共控件或任何自定义窗口类来创建其UI元素和动画效果。在此之前,我曾问过有关使用GDI / GDI +开发自定义GUI框架的信息,但是大多数人都反对这些技术,因此问题仍然是Qt或任何其他等效的分配器系统使用哪种图形技术来呈现其UI?

我知道DirectX / OpenGL,但对于简单的要求来说,它不是过分杀伤力吗?如果答案将是上述之一,那么我又想知道如何使用这些多边形渲染技术实现健壮的字体渲染和矢量图形解决方案?功能齐全的文本编辑器是另一个巨大的挑战。

也已经存在基于Directx / opengl的解决方案,例如MyGUI和CEGUI,但我认为它们看起来很丑,而且与Qt的外观相去甚远。

c++ opengl directx qt

2
推荐指数
1
解决办法
1672
查看次数

我怎么知道是否使用new在堆上分配了一个对象?

我想知道是否有任何标准库函数或其他技巧,我可以通过该技巧查询应用程序是否分配了指针.其实我想做以下事情....

我有一个功能:

void DoSomeThing(SomeObject* pObj);
Run Code Online (Sandbox Code Playgroud)

现在调用这个函数我们通常有两个选择如下:

//The first method using stack

SomeObject ObjLocal(Arg1,Arg2);
DoSomething(&ObjLocal);

//The second method using heap

SomeObject* ObjUserAllocated=new SomeObj(Arg1,Arg2);
DoSomeThing(ObjUserAllocated);

//But I like to use code like below (saves me some typing)

DoSomeThing(new SomeObject(Arg1,Arg2));
Run Code Online (Sandbox Code Playgroud)

但第三种方法的问题在于 - 内存的重新分配现在是被调用方法的责任,在这里我卡住了,因为我不确定对象是否由应用程序分配.

我在这里发布了这个问题,甚至没有用谷歌搜索它,因为我对它很好奇,如果我得到一个干净的解决方案,对我来说是一个很好的奖励......很抱歉.

如果无法确定某个对象是否在堆上,那么大师会如何建议我实现我想要的?

c++ heap stack

1
推荐指数
1
解决办法
1538
查看次数