jjzjj

windows - 在所有未使用的情况下,进程外 COM 服务器最终是否应该停止?

我发现一个进程外的COM服务器以这样的方式实现(据推测是由于错误),如果客户端调用CoGetClassObject()然后从不尝试用服务器检索到的工厂实例化任何东西进程永远运行。COM服务器不是作为服务启动的,它是一个普通的可执行文件。在描述的场景中,客户端不会调用IClassFactory::LockServer(),所以这个问题是要完全忽略那些“服务器锁”。这是正确的行为吗?进程外COM服务器是否应该在一段时间内没有为对象提供服务后始终停止,或者是否应该存在进程外COM服务器即使不为任何对象提供服务也应该连续运行的情况? 最佳答案

c# - 为什么我的 C++ 互操作可以在 .Net 4.5 上运行,但不能在 4 上运行

在我的项目中,我必须使用第三方C++dll(不是COM)。我开发了一个接口(interface)C#dll,供我的主程序使用。这是设置:IDE:VSExpress桌面2013x64Legacy.dll(C++)Interface.dll(C#.Net4.5AnyCPU)Program.exe(C#.Net4.5AnyCPU)这是我的互操作类:publicstaticclassLegacy{//Establishaconnectionwithaprotocolchannel//extern“C”longWINAPILegacyConnect(unsignedlongProtocolID,

windows - 何时以及为何使用 CoLoadLibrary?

CoLoadLibrary()的描述说它的作用与LoadLibraryEx()几乎相同-将DLL加载到进程中。COM类创建函数-CoCreateInstance()和CoGetClassObject()-都将必要的DLL加载到进程中。那么为什么首先需要CoLoadLibrary()以及如何使用它? 最佳答案 看一下代码:movedi,edipushebpmovebp,esppush8push0pushdwordptr[ebp+8]calldwordptr[ole32!_imp__LoadLibraryExW(71eb1214)]po

C#调用WinApi?

我正在尝试使用代码IOCTL_DISK_SET_DISK_ATTRIBUTES在C#中调用WinAPI函数DeviceIoControl并传递结构SET_DISK_ATTRIBUTES.我正在尝试用这段代码来做:constuintGENERIC_READ=0x80000000;constuintGENERIC_WRITE=0x40000000;constintFILE_SHARE_READ=0x1;constintFILE_SHARE_WRITE=0x2;constuintIOCTL_DISK_SET_DISK_ATTRIBUTES=0x0007c0f4;constulongDISK_

c# - 正确使用 P/Invoke

我需要从C#调用外部dll。这是header定义:enumWatchMode{WATCH_MODE_SYSTEM=0,WATCH_MODE_APPLICATION=1};LONGADS_APIWDT_GetMode(LONGi_hHandle,WatchMode*o_pWatchMode);我在C#中添加了枚举和调用:publicenumWatchMode{WATCH_MODE_SYSTEM=0,WATCH_MODE_APPLICATION=1}[DllImport("AdsWatchdog.dll")]internalstaticexternlongWDT_GetMode(longh

windows - 在 Windows 8 (Metro) 应用程序中获取 XAML 控件的 hWnd?

我需要将一个hwnd传递给要将原始视频写入帧的nativedll。在WPF中,这是可行的,因为您可以从控件中获取hwnd引用。这在Metro应用程序中可能吗? 最佳答案 无法获取控件的HWND,因为Metro没有HWND。如果可以获取视频流,请尝试使用视频刷并设置源。否则,查看SharpDx库,它是DirectX的托管端口。我认为您可以从中为元素绘制“东西”。希望这对您有所帮助。 关于windows-在Windows8(Metro)应用程序中获取XAML控件的hWnd?,我们在Stack

c# - 自动播放处理程序 : wrong clipboard format?

我正在尝试实现Windows自动播放处理程序;根据我找到的文档和示例,我应该查询IDataObject以获取"AutoplayEnumeratedIDListArray"剪贴板格式。所以我尝试做类似的事情:[DllImport("user32.dll",SetLastError=true,EntryPoint="RegisterClipboardFormatW")]publicstaticexternuintRegisterClipboardFormat([MarshalAs(UnmanagedType.LPWStr)]Stringformat);privateconststringC

c++ - OpenCL/GL 互操作 : write_imagef to shared gltexture is all white (1, 1,1,1)

我正在尝试使用OpenCL编写光线追踪器。但是,我遇到了一些麻烦。我想在OpenGL和OpenCL之间共享纹理内存,以避免不必要的内存来回复制。我的程序运行良好,我在每次调用GL和CL后进行检查,没有发现任何错误。如标题中所述,使用write_imagef写入内核中的纹理会在每个channel中产生1.0。我怀疑纹理格式有问题,但我一直在互联网上寻找有效的纹理格式,但我看不出有什么问题。我尝试了write_imageui和write_imagef以及纹理格式的不同组合,但没有成功。内核程序:__kernelvoidDraw(__global__write_onlyimage2d_tim

c# - 在 C# 中使用 DllImport 的最佳方式以及如何从外部方法取回控制权

我在我的C#桌面应用程序中调用外部方法[DllImport(CONST_DLL_PATH)]internalstaticexternboolProcessXML(stringinputPath,stringoutputPath);我有几个问题:为DllImport指定EntryPoint或任何其他属性有多重要?如果ProcessXML失败怎么办,如何从外部方法取回程序执行控制权?DllImport有哪些替代方案?我想确保在ProcessXML失败的情况下,应将控制权返回给应用程序。 最佳答案 1)如果方法名称与DLL的条目名称不同-

windows - 如何定位 Word 应用程序窗口?

我有一个VB.net测试应用程序,它单击打开MicrosoftWord应用程序窗口并显示文档的链接。如何找到Word应用程序窗口以便从中抓取一些文本? 最佳答案 您可以使用WordCOM对象打开工作文档,然后对其进行操作。确保首先添加对MicrosoftWord的引用。ImportsSystem.Runtime.InteropServicesImportsMicrosoft.Office.Interop.WordPublicClassForm1InheritsSystem.Windows.Forms.FormPrivateSubBu