Articles of c + +

如何在Kiosk模式下运行C#程序?

我有我想安装在Windows平板电脑上的交stream#和WPF程序,我希望我的程序成为平板电脑上运行的唯一程序,当用户打开平板电脑时,它应该开始自动运行。 任何解决scheme

有没有更好的方式来加载在C + +的DLL?

现在我做这样的事情,如果我有很多我想在我的DLL中引用的函数,它似乎很混乱。 有没有一种更好,更干净的方式来访问函数,而不必为每个函数定义创build一个typedef,以便它将编译和正确加载函数。 我的意思是函数定义已经在.h文件中,我不应该重新声明他们后我加载函数(或我?)有没有比使用LoadLibary更好的解决scheme? 如果在Visual Studio 2005项目设置中可以做同样的事情,我不一定需要这个function。 BHannan_Test_Class.h #include "stdafx.h" #include <windows.h> #ifndef BHANNAN_TEST_CLASS_H_ #define BHANNAN_TEST_CLASS_H_ extern "C" { // Returns n! (the factorial of n). For negative n, n! is defined to be 1. int __declspec (dllexport) Factorial(int n); // Returns true iff n is a prime number. bool __declspec (dllexport) IsPrime(int n); } #endif […]

C ++:使用Win32 API实现命名pipe道

我试图在C ++中实现命名pipe道,但是我的读者不读任何东西,或者我的作者没有写任何东西(或者两者兼有)。 这是我的读者: int main() { HANDLE pipe = CreateFile(GetPipeName(), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); char data[1024]; DWORD numRead = 1; while (numRead >= 0) { ReadFile(pipe, data, 1024, &numRead, NULL); if (numRead > 0) cout << data; } return 0; } LPCWSTR GetPipeName() { return L"\\\\.\\pipe\\LogPipe"; } 这是我的作家: int main() { HANDLE pipe […]

multithreading单读写器单写FIFO队列

我需要一个队列来传递消息从一个线程(A)到另一个(B),但是我找不到一个真正做我想做的事情,因为他们通常允许添加一个项目失败,在我的情况下因为消息需要处理,所以非常致命,线程真的不能停下来等待空闲的空间。 只有线程A添加项目,只有线程B读取它们 线程A不能阻塞,但是线程B不是性能关键的,所以它可以 添加项目必须总是成功,所以队列不能有一个大小上限(系统内存不足) 如果队列是空的,线程B应该等待,直到有一个项目要处理

如何将打印机驱动程序转换为独立的控制台应用程序,该应用程序可以生成包含要发送到打印机的字节的打印机文件?

我有一种情况,生成一个特定的数据文件的唯一方法是手动打印到文件:在Windows下,并将其保存在文件中进一步处理。 我真的希望有一个embedded这个二进制打印机驱动程序的小型独立程序,这样我就可以从一个batch file运行它,让它为我生成二进制文件,因为我们可以完全自动化“在Visio中保存文件, “打印”并将其上传到最终目的地并触发远程testing“。 这可能与一个合适的Windows SDK? 我是一个Java程序员,所以我不知道Visual Studio和MSDN的可能性 – 但! – 但我会欣赏指针。 编辑:我有该打印机驱动程序的安装文件,32位和64位。 旧版本可能包括一个16位驱动程序。 编辑:“打印到文件:”function正是文档所build议的。 我使用LPR协议玩了一下,看看它能做什么。 我仍然更喜欢“调用小二进制”的方法。

Win C#:以pipe理员身份运行应用程序,无需UAC提示

我需要我的一个.exe永远以pipe理员身份运行没有UAC提示。 我的程序将安装与设置,这将有一次pipe理员权限,我需要执行这样的步骤在这个设置中,我的exe文件将始终作为pipe理员没有UAC提示执行。 到目前为止我find了两个解决scheme: 1.使用自定义服务,这将提升我的程序。 2.使用任务计划程序 。 有没有其他解决scheme? 有些可能显示吗? 谢谢。

如何在Windows中创build一个具有尾随句点的文件名?

如何处理在Python中以句号结尾的文件名? 根据MSDN的网站,这些文件名在Windows中是有效的,但是每当我尝试在Python中创build一个文件名时,它将删除最后一个时间段。 我甚至尝试用os.open创build一个原始文件描述符,但是它仍然删除了这个句点。 例如,这将创build一个简单名为“ test ”的文件 os.open('test.', os.O_CREAT | os.O_WRONLY, 0777) 编辑: 这是确切的报价 关于文件名和目录中的空格和点。 限制是在Windowsshell – 而不是在Windows或NT。 使用'bash',你可以在文件名的开始和结尾使用空格(或点)来创build文件。 然后,您可以在资源pipe理器中列出并打开这些文件,并且可以在shell(cmd.exe)中“列出”它们,但是您不一定能够从shell中打开它们(尤其是后面的空格和点)。

我如何调用另一个类的静态方法

我有一个类,让我们说说有一个静态方法的CAppPath : public: static CString GetAppPath(); 并在CAppPath.cpp定义为: CString CAppPath::GetAppPath() { return "C:\..\MypAth"; } 现在我有另外一个类CXMLHandler ,并且在其中包含了CAppPath.h 。 但是,如何调用GetAppPath()方法? 我试过了: #include "CAppPath.h" void CXMLHandler::MyMethod { CNDSClientDlg->GetAppPath(); } 但它不起作用。 我应该如何访问这个方法? 既然它是一个静态的方法,我是否需要创build一个类的对象,或者我应该让类本身是静态的?

CreateDirectory Windows API在c ++中的用法

我只是find了一小段代码,让我创build一个目录与Windows API而不使用system()。 唯一的问题是,我不能在子目录中创build目录。 例如 #include<windows.h> int main(){ CreateDirectory ("C:\\random", NULL); return 0; } 在C中创build一个名为random的文件夹 但是,如果我这样做 #include<windows.h> int main(){ CreateDirectory ("C:\\Users\morons", NULL); return 0; } 它在名为Usersmorons的C文件夹中创build,而不是在Users下的文件夹。 有什么build议?

我怎样才能在C#中使用GetNextWindow()?

Microsoft WinAPI文档似乎build议user32.dll包含一个名为GetNextWindow()的函数,据称允许通过重复调用此函数来枚举打开的窗口,以其Z顺序。 Pinvoke通常会给我必要的DllImport语句来使用C#中的WinAPI函数。 但是,对于GetNextWindow()它没有条目。 所以我试图构build自己的: [DllImport("user32.dll")] static extern IntPtr GetNextWindow(IntPtr hWnd, uint wCmd); 不幸的是,当试图调用这个时,我得到一个EntryPointNotFoundException : Unable to find an entry point named 'GetNextWindow' in DLL 'user32.dll'. 这似乎只适用于GetNextWindow() ; Pinvoke上列出的其他function都没有问题。 我可以调用GetTopWindow()和GetWindowText()而不会引发exception。 当然,如果你可以build议一个完全不同的方式来枚举当前的Z顺序的窗口,我也很高兴听到这一点。