草庐IT

session共享

全部标签

c++ - 在不同项目(没有编译时链接)中使用的 header 中声明的纯抽象 C++ 类是否共享相同的虚拟表模型?

我有一个C++头文件声明了一个仅由纯虚方法组成的类。我有两个使用该header的DLL(其中一个实现该接口(interface))但在编译时未链接。一个DLL正在动态加载另一个,将已实现接口(interface)的指针传递给另一个。这些DLL是否共享相同的虚拟表结构? 最佳答案 当然,类头足以构建完整的类(这里说的是内存中的布局,一切都是如何定位的,而不是里面的实际数据),包括精确的虚拟表结构。想一想,每个链接对象(您的.cpp文件)都是单独编译的,只有头文件是共同的,但在编译时,编译器必须知道虚拟表的精确结构才能正确路由虚拟调用。

c++ - Windows 限制中的共享内存 (c++)

目前我正在研究针对每个进程的内存限制的解决方案。所以我来到了共享内存。首先,我使用带有visualstudio的windows7作为开发平台,该软件将在具有多个CPU和巨大内存的现代windows服务器系统上运行。好吧,我告诉自己每个进程的内存限制,我需要访问更多的内存。所以我的想法是创建多个进程并使用共享内存。但是创建很多共享内存真的好吗?那么性能呢? 最佳答案 Well,Iinformedmyselfaboutmemorylimitsperprocess,andIneedtoaccessmuchmorememory.Somyid

python - 使用python创建共享windows文件夹的权限

我在python3.3中使用此代码与pywin32库共享一个文件夹。我现在如何向文件夹添加权限?以下代码不设置共享文件夹的权限。我想将特定用户添加为读/写importwin32netimportwin32netconshinfo={}shinfo['netname']='pythontest'shinfo['type']=win32netcon.STYPE_DISKTREEshinfo['remark']='datafiles'shinfo['permissions']=0shinfo['max_uses']=-1shinfo['current_uses']=0shinfo['path

windows - 从 NT 服务向远程桌面 session 发送消息

如何从nt服务向在远程桌面session中启动的应用程序发送sendmessage和postmessage?目前我通过应用程序之间的udp通信暂时解决了这个问题。 最佳答案 您不能跨session边界发送消息。因此,您需要一个IPC解决方案,例如TCP/IP、套接字、命名管道等。 关于windows-从NT服务向远程桌面session发送消息,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

Windows 文件共享 : What ACE AccessMask flags correspond to the different share permissions?

最近我尝试使用WMI创建一个共享并向用户授予读写权限。现在使用0x1(FILE_READ_DATA/FILE_LIST_DIRECTORY)和0x2(FILE_WRITE_DATA/FILE_ADD_FILE)不起作用。设置所有标志让我完全控制。我必须使用哪些标志分别设置读取、更改和完全控制共享权限? 最佳答案 我通过反复试验发现了以下内容:对于读取权限,您需要使用0x1200A9。这对应于以下标志:FILE_READ_DATA(file)orFILE_LIST_DIRECTORY(directory)1(0x1)FILE_READ

c++ - 提取共享内存的大小

我正在尝试了解我应该如何提取MapViewOfFile的返回缓冲区大小。我使用以下命令分配共享内存hFileMapping=CreateFileMapping(INVALID_HANDLE_VALUE,nullptr,PAGE_READWRITE,0,dwDataSize,strSharedMemoryName.c_str());使用以下代码片段填充内容:pBuffer=DynamicAPI::MapViewOfFile(hFileMapping,FILE_MAP_WRITE,0,0,dwDataSize);if(nullptr==pBuffer||GetLastError()!=0)

c++ - 如何保护两个进程之间共享内存中的字符串?

我有一block共享内存,其中包含两个进程之间的一个char字符串和一个整数。进程A写入它,进程B读取它(反之亦然)确保进程A不会在进程B正在读取它的同时更新(写入)它的最有效方法是什么?(我应该只在共享内存中使用标志,使用信号量,临界区....)如果您能指出正确的方向,我将不胜感激。谢谢。Windows,C++ 最佳答案 您不能使用CriticalSection因为这些只能用于同一进程内线程之间的同步。对于进程间同步,您需要使用Mutex或Semaphore.两者的区别在于前者只允许一个线程拥有一个资源,而后者最多允许一个最大数目

c++ - 让两个 dll 共享一个静态库的陷阱是什么?

假设你有两个dllDllA和DllB它们都静态链接到静态库(即.lib文件)。我们称该库为L。我知道L完全链接到A和B,分别有效地创建了LA和LB。但是,当来自LA的对象O从A传递到B时会发生什么?我假设在ALA中执行代码,而在BLB中执行代码,因为链接就是这样发生的。如果在A中创建O,卸载A,然后在B中使用O,会发生什么坏事? 最佳答案 静态库只是目标文件的集合。当你链接一个静态库时,一切都发生了,就好像静态库的代码已经包含在你的代码中一样。所以如果静态库中有全局变量,每个DLL都会得到自己的拷贝,这可能是你想要的,也可能不是你想

Windows Server 2003 - 像在 Windows XP 中一样通过 RDP 共享当前桌面?

不幸的是,由于WindowsXP的内存限制,我不得不在我的32位工作站上使用WindowsServer2003。在WindowsXP中,当您通过远程桌面连接时,我登录的当前session会立即在远程桌面上共享。我可以看到我在工作站上打开的所有应用程序,并且可以继续处理我打开的应用程序。但是,在Windows2003Server上,每个远程桌面连接都会获得一个新session。没有打开应用程序。因此,我必须使用任务管理器并手动连接到现有session才能查看打开的应用程序。是否可以对此进行更改,以便Windows2003Server的行为与WindowsXP完全相同?我不需要允许多个用户

c++ - 写入共享内存的频率限制?

单线程应用程序(C++)连续锁定、写入和解锁共享内存-每秒四次(该循环以编程方式设置为每秒运行一次,循环中有4次写入,没有读)。EnterCriticalSection(cs);WriteToSharedMem();LeaveCriticalSection(cs);另一个应用程序(C)将每隔分钟访问一次此共享内存。以这种速度写入共享内存有什么问题吗?WindowsXPC++ 最佳答案 您给出的速率(每秒四次)不会造成问题,但是youcan'tusecriticalsectionsacrossprocesses.您需要一个内核级同步对