Articles of c + +

Qt Widget应用程序“库未注册”错误

我刚刚开始使用Qt,并创build了一个简单的Qt Widgets应用程序。 当我构build并运行应用程序(即使我创build了一个没有新代码的新项目),我收到以下错误消息: (2128)\ OLEAUT32.dll!74445072 :(调用者:7444FE4F)ReturnHr(1)tid(188)8002801D库未注册。 (2128)\ OLEAUT32.dll!74445072:(调用者:7444FE4F)ReturnHr(2)tid(188)8002801D库未注册。 我的Qt安装和Windows都是最新的。 我一直在寻找一个解决scheme,现在几个小时,我找不到任何东西,甚至远程相关的问题在线…有没有其他地方有类似的问题? 更新: 我只是从我的电脑彻底删除Qt,并做了全新的安装,我仍然得到相同的消息。

特定Windows用户组的Windows身份validation

我创build了asp.net网页,当loginbutton点击时,我想用windows用户名和密码login我的asp页面。 我有网上search一些代码( http://www.codeproject.com/Articles/37558/Windows-Authentication-Using-Form-Authentication )login我的ASP页面。 它适用于我的本地用户名和密码,但我想访问特定的域组成员到我的asp.net页面 谁来帮帮我…

为什么我得到ERROR_ACCESS_DENIED试图使用OpenPrinter打开一个特定的作业?

根据给定作业ID的undocprint ,应该可以通过使用格式为“PrinterName,Job xxxx”的string打开打印机,使用OpenPrinter和ReadPrinter检索作业的假脱机文件。 MSDN文档也列出了这个方法,虽然在逗号“PrinterName,Job xxxx”之后有一个额外的空格。 每当我尝试从我的testing应用程序(使用任何string格式)调用此方法时,我得到ERROR_ACCESS_DENIED (Windows 8 x64)。 为什么是这个,我需要做些什么才能做到这一点? 我以pipe理员身份运行testing应用程序,并且无需暂停作业或打印机或访问其他信息。 我知道我使用的ID是有效的,因为对于无效的ID,它会返回ERROR_INVALID_PRINTER_NAME 。 我正在使用的代码: public static void OpenPrinter(String printerName, ref IntPtr printerHandle, ref PRINTER_DEFAULTS defaults) { if (OpenPrinter(printerName, ref printerHandle, ref defaults) == 0) { throw new Win32Exception(Marshal.GetLastWin32Error(), string.Format("Error getting access to printer: {0}", printerName)); } } [DllImport("winspool.drv", EntryPoint = "OpenPrinterW", SetLastError = true, CharSet […]

Windows API DLL文件的许可证文件

我的朋友目前正在准备分发他的软件,并希望清理他使用的软件的许可证。 策略是他收集所有提供许可文本的文件。 他完成了所有“显而易见的”许可证的收集,例如他使用的Qt库的Qt许可证。 但是他也使用了Windows附带的一些Windows DLL,比如kernel32.dll和advapi32.dll 。 他在哪里可以find许可证文件,以便他可以用他的软件发布? 第一个DLL文件kernel32似乎基于http://en.wikipedia.org/wiki/Auto-linking指令自动链接到他的软件。 第二个文件, advapi32.dll显式链接到他的软件,他想通过收集提供许可证的文件来清理该文件的情况。 例如,对于debian linux,他知道这些文件在/usr/share/doc/<package of the library>/copyright 。

对来自PInvoked OpenFileDialog(GetOpenFileName)的非托pipe数组的string进行编组

OpenFileDialog返回一个指向内存的指针,该指针包含一系列以空字符结尾的string,接着是最后一个空指示数组的末尾。 这就是我从非托pipe指针返回C#string的方式,但是我确定必须有一个更安全,更优雅的方式。 IntPtr unmanagedPtr = // start of the array … int offset = 0; while (true) { IntPtr ptr = new IntPtr( unmanagedPtr.ToInt32() + offset ); string name = Marshal.PtrToStringAuto(ptr); if(string.IsNullOrEmpty(name)) break; // Hack! (assumes 2 bytes per string character + terminal null) offset += name.Length * 2 + 2; }

当用户已经是pipe理员时,通过C ++激活pipe理员

那么我注意到,在Windows 7上,有时甚至当你是一个pipe理员,你不能做很多事情,可能是某种错误,我的应用程序我检查用户是否是pipe理员在启动程序之前,因为我的程序创build文件被保护的文件夹默认为根文件夹(C:),如果您不是Windows 7的pipe理员,则只能在那里创build文件夹。 所以,如果我右键单击我的应用程序,然后“以pipe理员身份运行”,它只是正常工作。 有没有办法使我的应用程序自动以pipe理员身份运行? 我想能够使一行代码,如: ActivateAdministrator(); 并完全可用于代码,因为我改变属性,用ifstream创build文件。

以编程方式设置标题栏和边框颜色

我试图以编程方式更改我的应用程序的标题栏和边框颜色。 我尝试了很多东西,但没有成功,并决定在系统范围内改变这些颜色。 因为在我的应用程序运行时更改标题栏和边框颜色也是可以接受的,并且在我的应用程序结束时还原它们。 (托pipe环境,运行一小组应用程序) 是否有可能dynamic地改变这些颜色(全过程,或系统范围内,除非过程范围内的变化是可能的)? 你能build议任何方式来实现这一目标吗? 我尝试了类似下面的内容,但是它没有做我想做的事情: int aElements[2] = {COLOR_WINDOW, COLOR_ACTIVECAPTION}; DWORD aOldColors[2]; DWORD aNewColors[2]; aOldColors[0] = GetSysColor(aElements[0]); aOldColors[1] = GetSysColor(aElements[1]); aNewColors[0] = RGB(0x80, 0x80, 0x80); // light gray aNewColors[1] = RGB(0x80, 0x00, 0x80); // dark purple SetSysColors(2, aElements, aNewColors); SetSysColors(2, aElements, aOldColors); 提前致谢 编辑 这正是我想要的:

mono.unix.native在哪里?

我inheritance了一个正在Windows上编译的C#web应用程序(和Web服务),并在Linux上的Mono上运行。 我需要做一些文件权限的魔术,看起来像包括大会:mono.unix.native。 那么,我可以在我的窗口框中引用这个,如果是的话,它在哪里?

如何使用GetMonitorCapabilities和GetMonitorBrightness函数

我正在尝试以编程方式调整我的显示器亮度。 经过一点研究,我想出了这个链接 ,并且写下了下面的代码(主要是复制来自其他链接的粘贴)。 #include "Windows.h" #include "WinUser.h" #include "PhysicalMonitorEnumerationAPI.h" #include "HighLevelMonitorConfigurationAPI.h" #include <strsafe.h> void ShowError(LPTSTR lpszFunction); int main() { HMONITOR hMonitor = NULL; DWORD cPhysicalMonitors; LPPHYSICAL_MONITOR pPhysicalMonitors = NULL; HWND hWnd = GetDesktopWindow(); // Get the monitor handle. hMonitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY); // Get the number of physical monitors. BOOL bSuccess = GetNumberOfPhysicalMonitorsFromHMONITOR(hMonitor, &cPhysicalMonitors); if […]

Windows服务无法访问UNCpath

我有一个在Windows Server 2012上运行的C#编写的Windows服务。该服务以域用户身份运行,在本地计算机上具有权限,在Isilon SAN上以NTFS权限共享networking资源。 当用户使用以下格式login时,我可以访问Windows资源pipe理器中的共享文件和目录: \\isilon\path\to\dir\ 但是,要求 System.IO.Directory.Exists() 总是返回false。 起初我以为是这样的: http : //support.microsoft.com/kb/827421但是,实施解决方法build议您可以使用 System.IO.Directory.GetDirectories() 只是访问目录(而不是先检查它们是否存在)。 这只是抛出 System.IO.IOException: An unexpected network error occurred. 在同一networking上的另一台服务器(Windows 2008)上运行时,此相同的服务代码可以正常工作。 真正疯狂的是,如果我重新启动服务器,文件系统调用首先成功。 然后,经过一段时间,或从该计算机访问同一文件path后,编程式调用将开始失败,并且不会再自发地成功。 重新启动服务器可以很快解决问题。 我完全被难住了,因为不应该有必要重新启动Windows服务器实例。 我不知道什么可能会影响文件共享权限或可访问性。 也许这与Windows Server 2012上的SMB 3.0的新实现有关? 编辑:好的,事实certificate,我并不疯狂。 OneFS(运行在Isilon SAN上的文件系统)的版本与Windows Server 2012没有明确的兼容性。虽然声称与SMB兼容。 从OneFS版本6.5.5.14更新到6.5.5.20立即解决了问题,并从此稳定。