草庐IT

c++ - 在 C++ Builder 中使用 COM

我是COM库的新手,一直坚持在我的C++Builder(XE2)应用程序中使用COMDLL。DLL已注册。允许我创建属于此类DLL的对象并调用它们的方法的步骤是什么?我的意思是静态的。我找不到教程,但我看到了不同的方法:Component>Importcomponent>它会生成一个新的包装器单元...然后呢?用绝对路径导入DLL(为什么?它在系统中注册了)#import"C:\Path\to\the\LIB1.dll"rename_namespace("LIB1")...然后呢?使用CoCreateInstance...具体怎么做?没有导入/包含?在VisualC#中,我处理它只是添

c++ - 在 Visual Studio 2010 中从 .h 和 .lib 创建 .dll

我正在尝试从我从tngaming为他们的游戏背心获得的头文件和库文件创建一个.dll文件。到目前为止,我一直在使用thisguide,但我没有创建新的头文件,而是将我的tngaming文件添加到头文件所在的文件夹,然后使用“添加现有项目”将其添加到visualstudio内的文件夹。之后,我使用了属性->链接器->输入,我在其中添加了我的lib文件,这似乎也能正常工作。然后在tngaming.cpp中我添加了一行#include"tngaming.h"现在可以构建我的.dll,但它不起作用。当我查看它时,有\行显示诸如“堆栈内存已损坏”之类的内容。我是在正确地创建我的.dll还是我做错

c# - 如何将非托管 C++ dll 添加到 Silverlight 5 项目中

我需要在Silverlight5项目中使用我自己的非托管C++dll。因为我可以使用dllImport来使用它,即[DllImport(@"D:\myLib\Debug\myLib.dll")]staticexternintadd(IntPtrptr);它工作正常,因为我在DllImport中提到了绝对路径。但我的问题是,我想使用相对路径。因为我需要在我的silverlight5项目中添加非托管C++dll并从那里指定路径。我从过去两天开始调查,但没有找到解决此问题的方法。只有我找到了下面提到的一个相关链接,但它也没有帮助。http://msdn.microsoft.com/en-us

c++ - 释放 DLL 创建的对象

我的DLL是用LoadLibrary加载的-它们是否仍然可以共享运行时,或者我实际上是否必须确保对象在分配它们的同一个DLL中被删除?在我的示例中,我有一个在DLL模块中实现的公共(public)基类,然后由Lua对象镜像,Lua确定其生命周期。因此,我需要在Lua垃圾收集器决定释放对象时释放该对象,而且我无法预测它将从哪个DLL中进行垃圾收集。我在考虑每个DLL都具有以下函数的拷贝:intReleaseObject(lua_State*L){//objectpointerisstoredinfield[0]lua_rawgeti(L,-1,0);delete(Object*)lua_

c# - 我可以将 C DLL 的输出重定向到我的 c# log4net 输出吗

我有一个C#应用程序,它依次加载C或C++dll(依次加载其他C/C++dll)。在C#应用程序中,我使用log4net记录器将所有输出捕获到一系列日志文件中。我的应用程序作为Windows服务运行,因此没有用于正常printfs或写入stdout/stderr的输出的控制台/输出窗口。有没有一种方法可以设置C#应用程序以引导stdout/stderr(来自DLL)并将每一行转换为log4net输出。或者在C/C++DLL中是否有某种方式将stdout/stderr流连接到log4net输出?我找到了一些解决方案(此处:http://bytes.com/topic/c-sharp/an

c# - 如何从 [C# WP8.1 WRT/SL] 项目中调用 [Unmanaged C++ DLL func]

这不是“如何从C#调用C++函数”的拷贝我知道如何为常规PC应用程序执行此操作,我尝试过并且有效:这叫做P/Invoke1.CreateaC++dllproject,butyoucan'taddtheC++dllprojectasareferencetotheC#project.CopythedllfromC++,andpastethedlltotheC#exefolder2.inC#use[DllImport...]inC++useextern"C"__declspec(dllexport)...但是当我在WindowsPhone上执行此操作时,失败了。WindowsPhone有两种

c# - 从 C# 调试 C++ dll

我简单说一下情况。我有一个C#项目,它使用一些用C++创建的DLL。现在,另外,我还有一个C++项目,前段时间用来创建那个DLL。现在,我想在运行C#项目期间调试C++DLL。我在我的C#项目中启用了“启用非托管代码调试”。我开始调试C#项目并逐步执行一些功能。一切似乎都还好。当我到达一个属于C++DLL的函数时,它询问C++文件的来源,我必须浏览到我的C++项目。(在我认为它提示某些.pdb文件之前)。现在,我也设法进入了C++函数,但是当我一遍又一遍地进入时,该函数中的一些数据结构似乎没有填充数据,例如,请看下面的截图你可以看到blob数据结构是空的,DataParser也发生了同

c++ - QT程序无法启动,因为缺少libgcc_s_dw2-1.dll

我知道以前有人问过这个问题,但我似乎找不到答案。我只有一个小的helloworld控制台程序,基本上是我用c++和qtcreator编写的。当我尝试运行可执行文件时,出现“程序无法启动,因为您的计算机缺少libgcc_s_dw2-1.dll。请尝试重新安装以解决此问题。”我不明白为什么这个dll对于像这样的小程序来说甚至是必需的。我尝试按照其他地方的建议添加这些标志:QMAKE_CXXFLAGS+=-static-static-libgcc-static-libstdc++它仍然发生。其他人建议将dll所在的目录添加到我的路径中,但我实际上想将此程序提供给其他人,而他们不需要dll。

c++ - 如何在 Eclipse CDT 中编译 64 位 DLL(使用 Windows SDK)?

我想做的是:在win7上创建一个64位DLL,它与包括OLE32.dll在内的WindowsAPI交互。我得到的:我现在卡住了。我下载了VisualStudio2015CommunityEdition。我试图在那里创建一个DLL,并在创建时生成了所有内容,但没有生成dll。该程序没有提示,一切都按照教程中的设置进行了设置,但没有dll文件。所以我跳过了这个并下载了EclipseCDT。我使用VisualC工具链进行设置,并在出现一些小问题后生成了DLL。所以我使用Java来启动它,但它提示(我使用JNA进行集成)并且它接缝说我有一个32位DLL。所以我在网上搜索、阅读并做了一些事情,但

c# - DLL 不能在 C# 中运行

每当我尝试通过VisualStudio在C#中引用我自己的DLL时,它都会告诉我它无法引用DLL,因为它不是COM库。我在互联网上进行了搜索以找到解决此问题的方法,但没有明确的答案,也没有真正提供任何帮助。这是一个相当“简单”的DLL,它从指纹扫描仪捕获原始图片数据。我已经测试过C++代码在我尝试将它变成DLL之前工作得很好,你知道的。我遵循了Microsoft关于如何制作DLL的指南,这是我最终得到的:JTBioCaptureFuncsDll.hJTBioCaptureFuncsDll.cppJTBioCapture.cppJTBioCaptureFuncsDll.h#ifdefJT