草庐IT

c++ - 在 Windows 上存储信息有哪些选项?我应该如何阅读这些信息?

我有哪些选项可以在Windows上存储信息?我正在考虑创建一个文件或使用注册表,但如果文件太大并且注册表太容易被用户访问,那么处理该文件可能会很烦人。我不希望最多有100个条目,它们看起来像这样。约翰香蕉马库斯·苹果等等我意识到这不会产生太大的文件,但我不想每次需要信息时都解析它。我正在考虑在启动时将信息读入应用程序,但这不会造成性能问题吗?或者也许它太小了,除了旧计算机外无关紧要?还有其他选择吗?也许我可以加密信息并将其放入注册表中?注册表是否适合放置多个这样的条目?请注意,当我编程时,在提高效率方面有时会有点过火。请原谅我的无知。 最佳答案

c - Windows线程接受套接字上的连接

我熟悉pthreads,但不熟悉Windows线程。在Linux中,一个新线程可以这样启动:pthread_ttid;intrc=pthread_create(&tid,NULL,Threadfn,&newsocket);assert(rc==0);////和Threadfn可以轻松重构Socket:void*Threadfn(void*vargp){pthread_detach(pthread_self());int*Socket=(int*)vargp;print("Socketis%d\n",*Socket);//recv/read/sendetc..pthread_exit(N

c++ - 如何使用 Windows API 检索 HD 供应商/序列号

我说的是物理磁盘驱动器,而不是卷/分区/逻辑驱动器。因此,通常建议的GetVolumeInformation函数不适用于我的情况。确切地说:我正在直接使用尚未分区的磁盘。我通过CreateFile函数打开它的句柄:hDisk=CreateFile(_T("\\\\.\\PHYSICALDRIVE0"),GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED|FILE_FLAG_NO_BUFFERING,NULL);我可以使用这个句柄直接在磁盘上

c - VB6 - 如何通过 .tlb 文件将字符串传递给用 C 编写的 DLL

我正在开发一个用VB6编写的图形界面,我必须在其中调用某个用C编写的DLL中包含的函数。因为knownlimitation我必须实现trick这允许我以隐式方式加载此DLL。这可以创建一个IDL文件,用MIDL编译它并在VB6项目中引用生成的.tlb文件。问题是VB6字符串和C字符数组不匹配,所以我无法将它们传递(并取回)到DLL。C函数的原型(prototype)是:int__stdcallmyFunc(charfilename_in[],charfilename_out[],charErrMsg[]);我应该在IDL文件中写什么,我应该如何从VB6中调用它?谢谢。

c - 在任务计划程序中运行 C 程序时出错

我编写了一个C程序来离线获取图像并使用fopen/fread/fwrite和libcurl将其保存在文件中。一切都编译得很好,我可以通过双击程序完美地运行它。但是,当我尝试使用任务计划程序在我的计算机上设置一个任务以每10分钟运行一次时,程序打开并且当它尝试保存文件时出现错误:exception::handle:Exception:STATUS_ACCESS_VIOLATIONopen_stackdumpfile:Dumpingstacktracetogarden.exe.stackdump我正在运行WindowsVista,并尝试使用nativeWindows计划任务功能。我已选中任

c - 如何: Safeguard memory - strncat()?

function(char*a,char*b){charnewStr[100];strncpy(newStr,a,sizeof(newStr));//Line1-copynomorethan100bytesstrncat(newStr,b,(sizeof(newStr)-strlen(newStr)));//Line2-?newStr[99]=NULL;//Line3-nullterminatestring}第2行:正确指定100bytes减去从a复制过来的内容的strlen以确保我不会复制超过100个字节?谢谢。 最佳答案 str

c++ - 单个文件上两个 C FILE* 流的一致性

我需要为来自网络套接字的大量数据实现一个简单的“溢出到磁盘”层。我希望有两个CFILE*流,一个由写入文件的后台线程使用,一个由读取文件的前端线程使用。这两个流是这样的,一个线程可以在一个偏移处写入,而另一个线程可以在其他位置读取-无需锁定并阻塞另一个线程。将有一个分页机制,因此读/写是在随机访问位置-不一定是顺序的。还有一个警告,这需要在Windows和Linux上运行。问题:在对第一个流的fwrite返回后,写入的数据是否保证对第二个流上的fread立即可见?如果没有,我还可以考虑其他哪些选择?Posixpread/pwrite函数原来是我所需要的。这是Win32的版本:size_

Python 包装器到 C 回调

尝试创建一个需要在调用C回调时调用的python回调来自Windows环境中的dll。请查看下面的代码以了解问题。fromctypesimport*#---------qsortCallback-------------#IntArray5=c_int*5ia=IntArray5(5,1,7,33,99)libc=cdll.msvcrtqsort=libc.qsortqsort.restype=NoneCMPFUNC=CFUNCTYPE(c_int,POINTER(c_int),POINTER(c_int))test=0defpy_cmp_func(a,b):#print'py_cmp

c - 使用 ShellExecuteEx 永久设置路径变量

我想出了这段代码。它将正确执行并返回true。但它不会改变Path变量的值。当我这样输入时-->setxPath"C:\ProgramFiles\Java\jdk1.7.0_02\bin\"在cmd中,它可以工作并更改Path值这是代码//PrepareshellExecutInfoSHELLEXECUTEINFOShRun={0};ShRun.cbSize=sizeof(SHELLEXECUTEINFO);ShRun.fMask=SEE_MASK_NOCLOSEPROCESS;ShRun.hwnd=NULL;ShRun.lpVerb=NULL;ShRun.lpFile="C:\\Wi

c++ - 包括来自 C++ 的 C-DLL

这感觉像是一个菜鸟问题,所以如果是骗人的,请指出正确的位置:)我尝试将用C编写的DLL包含到C++程序中。它没有用;gcc说test.cpp:xxx:error:toomanyargumentstofunction.这是一个最小的工作示例:DLL函数的包装器:/*myWrapper.h*/#ifndef_MYWRAPPER_H#define_MYWRAPPER_H#include#ifdef__cplusplusextern"C"{#endifexternFARPROCEXPORTED_functionNameP;intGetDLLpointers();#ifdef__cplusplu