草庐IT

c++ - 如何连接两个应用程序

我正在考虑用C++构建一个应用程序,它将解析来自网络的文本并创建一些统计结果。我想将这些结果实时输入外部应用程序。外部应用程序(我无法访问其代码,但可以要求付费定制添加)然后需要一些代码来读取和使用这些结果。我想知道在速度和易于实现方面互连这两个应用程序的最佳方式是什么。我正在考虑:diskI/O(slow)aWindowsserviceaDLLawebserviceawebpage也许我缺少更好的解决方案?谢谢。Update:thereisanadditionalneedtoknowhowlongadatarequestmaytakeatworst. 最佳

C到delphi转换

谁能告诉我我在转换过程中哪里出错了:C:typedefstruct_REGISTRY_EVENT{REG_NOTIFY_CLASSeventType;TIME_FIELDStime;HANDLEprocessId;ULONGdataType;ULONGdataLengthB;ULONGregistryPathLengthB;/*Containspathandoptionallydata*/UCHARregistryData[];}REGISTRY_EVENT,*PREGISTRY_EVENT;德尔福:_Registry_Event=recordEventType:REG_NOTIFY_

c++ - 相同的 C++ 代码导致 Windows 上的无限循环和 OSX 上的预期行为

这是我见过的最奇怪的事情之一。我在一所大学教授C++入门类(class),我的一位学生联系我说他的代码一直在不停地运行。我在类里面简单地浏览了他的代码,并没有立即看到任何明显的东西,所以我让他通过电子邮件将他的代码发给我。在不做任何更改的情况下,我下载了他的代码并在我的机器上运行-并且运行良好。我能看到的唯一区别是我使用的是OSX,而​​他使用的是Windows。这是代码:http://pastie.textmate.org/private/9rzpttixnuhudsvsm1yl4q有什么想法吗?已解决:PEBKAC存在问题实际上与学生输入的内容有关。我从来没有想过在提示存款时尝试输

c++ - 丢失 DLL 的一般方法

我想每个人都时不时遇到丢失dll的问题。我想要获得的是查找和安装dll的“推荐”方法。使用depends.exe很容易找出缺少的dll。 最佳答案 不要再使用depends.exe,它跟不上Windows核心和并行缓存等部署策略的发展。试图修复它给出的警告实际上会使您的机器变得非常糟糕。仅在程序实际无法启动时将其用作提示。 关于c++-丢失DLL的一般方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

c++ - 如何捕获来自另一个进程的退出消息?

我想“监听”其他一些应用程序并决定在它终止时做什么。如何?编辑:这两个程序在同一台计算机上运行,​​我想知道何时关闭另一个程序。然后在另一个程序中执行操作。我无法修改其他程序代码。我可能会也可能不会从应用程序A启动应用程序B。我可以通过其到exe的完整路径来识别应用程序B。 最佳答案 正如Abyx所写,WaitForSingleObject(或者可能是WaitForMulipleObjects)是您需要的API函数。创建事件启动一个(工作)线程将事件句柄传递给线程->HANDLE1获取要监视的进程的句柄。参见HowcanIgetap

c++ - 只有逐步调试,代码才能正常运行

我正在制作一个网络服务器,但我遇到了一些非常奇怪的问题。我的服务器运行正常昨天当我关闭我的笔记本电脑时,但今天它只发送httpheader(我没有改变任何东西)当用户请求文件时,如果我使用以下代码发送给他们,它会完美地工作:while((n=fread(data,1,sizeof(data),file))>0)发送(ts,数据,n,0);但如果我将其更改为此,它只会发送文件的~2%。这不是一个随机数,它实际上只发送了大约2%的文件。while((n=fread(data,1,sizeof(data),file))>0)web.Send(data);intWEB::Send(string

c++ - 从 C++ 类制作 Visual C++ DLL

我有以下C++代码来制作dll(VisualStudio2010)。classShape{public:Shape(){nshapes++;}virtual~Shape(){nshapes--;};doublex,y;voidmove(doubledx,doubledy);virtualdoublearea(void)=0;virtualdoubleperimeter(void)=0;staticintnshapes;};class__declspec(dllexport)Circle:publicShape{private:doubleradius;public:Circle(dou

c - 从 C 控制台应用程序打印到屏幕覆盖当前行

我想覆盖C控制台程序中的当前行,以实现类似于linuxshell命令“top”的输出。如果可能,该方法应该在windows和linux下工作。while(i我想在每次迭代中覆盖之前的数字,如果可能的话,看看用户是否在不暂停循环的情况下输入了一个字符。如果用户按下“q”键,循环应立即停止。 最佳答案 如果您只需要这样做,则不需要ncurses。您需要做的就是将光标移动到行首并覆盖那里的内容,并确保刷新输出缓冲区,因为stdout如果它连接到终端,通常是行缓冲的。这是一个例子:#include#includeintmain(intarg

c++ - 注册文件 - "dword"转换成什么?

我有一个正在尝试读取的reg文件。某些值中有一个类型“dword”..."check"=dword:000001f4"blah"=dword:000000c8"test"=dword:00000000"hello"=dword:00000000我应该将它转换成什么C++类型?以及如何? 最佳答案 dword是一个双字,其中一个字是旧的(Intel8086)16位字。因此,它转换为WinAPI特定类型DWORD,或标准C(但还不是标准C++)类型uint32_t。C++03保证unsignedlong足够大以容纳32位值,但在64位平

c++ - 如何正确比较两个无符号字符?

比较两者BYTEPhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];来自IP_ADAPTER_ADDRESSESStructure其中字节在Windows中定义为typedefunsignedcharBYTE;我需要比较内存吗?谢谢! 最佳答案 注意:PhysicalAddress的定义,如文档中所述,是BYTEPhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];即它是BYTE的数组秒。不过,您可以轻松地将它们与memcmp进行比较。来自(或如果您使用的是C++