Articles of c + +

Windows上的进程间通信

我有一个TCL脚本在Windows上运行。 我需要与运行在不同进程中的旧版vc ++ 6应用程序进行通信。 我需要有双向沟通。 在Linux中,我将使用dbus,但是我应该使用什么IPC策略来用于Windows?

为连接点客户端提供IDispatch实现

我用一个简单的COM对象写了一个简单的COM DLL inproc服务器。 COM对象实现一个连接点。 我知道如何创build一个从IDispEventImpl派生的ATL客户端,并使用汇地图来简化这个过程。 但是,为了演示的目的,我想创build一个win32控制台应用程序,该应用程序使用调用我的简单COM对象的类,然后充当连接点接收器。 我不知道如何提供一个IDispatch的实现 – 有人可以推荐文档,因为我找不到任何(我有ATL内部,但这似乎并不包括我需要)。 这是我已经得到的课程: #pragma once #include <iostream> using namespace std; // Because we're implementing a connection points sink (_IPogFarmEvents) // in a non-ATL class, we must provide implementations for IUnknown and IDispatch. class KidWithAPogFarm : public _IPogFarmEvents { private: DWORD m_dwRefCount; LONG m_lNumPogs; public: KidWithAPogFarm() : m_dwRefCount (0), […]

如何使用C#SendKeys以编程方式按Windowsbutton

基本上我想在代码中模拟一个用户点击Windowsbutton。 我知道有SendKeys允许我发送按键到Windows,如果我得到一个句柄,但我不明白是我需要得到一个句柄,以发送Windowsbutton命令。 例如Windowsbutton+ L.阅读了这一点后,似乎CTRL-ESC也应该popup开始菜单,但不知道如何告诉它发送密钥到Windows(如果这是可能的话)。 任何帮助将非常感激。 干杯!

Windows中的语言环境列表

在* nix系统上,您可以执行locale -a来获取可用语言环境的列表。 什么是Windows中的等效命令(或动作)? 我在互联网上看到了列表,但其中大多数只是语言环境标签,而不是实际的语言环境名称。 另外,并不是所有的系统都能保证全部安装,对吗? 请注意,我在这里定义的“locale”是“locale string”,即C的setlocale()的第二个参数,它将导致非空的返回值。 程序化的答案也很好,我只是厌倦猜测Windows语言环境名称的蛮力。

MAC地址到C#中相同LAN上的IP地址

有没有办法find在C#中的MAC地址到IP地址之间的映射。 我认为RARP应该能够做到这一点,是否有一个在C#中可用的API

使用C在Windows中使用千位分隔符打印整数

我想这个问题是不言自明的。 我正在使用printf和朋友(snprintf等)来显示一些内存统计数字在几百万或几十万的范围内。 阅读一个格式为“1,523,556”的数字比“1523556”要容易得多。 我已经尝试设置区域设置并使用格式说明符(%d和%llu)之前的撇号标志,但撇号显然是来自SUS的标准,所以它可能无法在Windows下工作。 是否有一个Windows特定的API来做到这一点? 我正在与Pelles C和直接ANSI C99编程。 **编辑** 在阅读与他们相关的答案和MSDN页面之后,我明白为什么.NET现在是Windows编程的首选方法。 它平滑了大量的API工作。

C#事件处理程序

如何在C#中检查button.Click事件是否有任何处理程序关联? 如果(button.Click!= null)抛出编译错误。

如何使用Win32 API获取给定端口名称的networking打印机的IP地址?

如何使用win32 API获取给定端口名称的networking打印机的IP地址? 我试着看着PRINTER_INFO_* structs ,但似乎它不存在。

在C ++中将一个文件的内容复制到另一个文件

我正在使用下面的程序来尝试在C ++中将文件src的内容复制到另一个dest。 简化代码如下: #include <fstream> using namespace std; int main() { fstream src("c:\\tplat\test\\secClassMf19.txt", fstream::binary); ofstream dest("c:\\tplat\\test\\mf19b.txt", fstream::trunc|fstream::binary); dest << src.rdbuf(); return 0; } 当我在Windows中使用CODEBLOCKS ide和GCC Compiler构build并执行程序时,创build了一个名为“…. mf19.txt”的新文件,但没有将数据复制到它,而filesize = 0kb。 我是积极的,我有一些数据在“… secClassMf19.txt”。 当我在Windows Visual C ++ 2008中编译相同的progeam时遇到同样的问题。 任何人都可以请帮忙解释为什么我得到这个意外的行为,更重要的是,如何解决这个问题?

如何在Windows 8中使用在Mac上创build的重用软链接

我有几个软链接,说我在我的iOS应用程序中使用的MacBook Pro中创build的1000个图像。 现在我正在Windows 8手机应用程序中移植相同的应用程序,所以我想在Windows Phone 8应用程序中重复使用相同的Softlink,那么如何使用它? 我试图打开Windows 8机器的软链接,但它说“文件格式不被支持”。 我的Windows机器中有原始文件和软链接。 有没有其他方法可以重复使用同一个软链接? 如果不是什么是我可以遵循的最好的方法。 编辑 好的,这里是一些更多的信息: 在MacBook Pro中 我有一个在物理path(实际图像)的桌面文件夹,现在我已经使用脚本创build软链接,这些软链接放在一些不同的文件夹。 现在我在iOS应用程序中使用这些软链接。 在Windows 8中 我已经从Mac复制了具有软链接的文件夹以及其中具有实际文件的文件夹。 现在我已经粘贴在我的桌面上的实际文件文件夹和soflinks文件夹中的一些D:驱动器现在,如果我去我的D盘驱动器的soflink文件夹,当我检查这些图像显示空白,因为它没有指向实际的文件。 我有两个实际的文件夹和soflink文件夹。 还有一点是,当你创build一个软链接,在MacBook Pro中显示这个图标: 但是在Windows 8上它的空白就是这样的。