草庐IT

DLL_EXPORT

全部标签

c# - 为 C++ DLL 实现回调 C# 函数

我正在为我的C++库编写一个DLL包装器,以便从C#调用。此包装器还应具有从库中调用并在C#中实现的回调函数。这些函数有例如std::vector作为输出参数。我不知道该怎么做。如何通过回调函数将未知大小的缓冲区从C#传递到C++?举个例子CallbackFunctionFunctionImplementedInCSharp;voidFunctionCalledFromLib(conststd::vector&input,std::vector&output){//HereFunctionImplementedInCSharp(C#delegate)shouldsomehowbecal

c++ - 在另一个进程加载的 DLL 中调用函数

我有一个DLL,我将其注入(inject)到另一个进程中,但我希望能够从我的应用程序调用该DLL上的导出。我在别处读到您必须使用SendMessageAPI,但我不知道该怎么做。是否有关于如何完成此操作的示例代码? 最佳答案 虽然无法直接调用另一个进程中的函数,但您可以通过几个步骤和WindowsAPI非常轻松地间接调用。获取LoadLibrary的地址和GetProcAddress从你自己的过程。kernel32.dll应该在每个进程中加载​​到相同的地址,因此您可以依赖它们存在于您正在注入(inject)的进程中创建struct

c++ - Qt + VS2010 : The program can't start because <xyz>. 你的电脑缺少dll

我从以下.pro文件创建了一个visualstudio2010解决方案:TEMPLATE=appCONFIG+=qtyyyzzzdebug_and_releaseTARGET=XYZdepthINCLUDEPATH+=.#HEADERS=SOURCES=main.cppxyzMainWidget.cppyyy{LIBS+=$(YYY_DIR)/release/yyy.libINCLUDEPATH+=$(YYY_DIR)}zzz{LIBS+=$(ZZZ_DIR)/lib/x86/ZZZ.libINCLUDEPATH+=$(ZZZ_DIR)/inc}当然,我已经替换了里面的一些关键词。它引

c++ - 如何在执行期间停止 C++ 应用程序以调试到 dll?

我有一个我没有代码的应用程序和一个我有代码的dll。我需要能够调试到dll,但缺少exe的源代码,我该怎么做?dll代码为mfcc++;我相信主应用程序也是一样。我试过做一个“设置目标应用程序”的交易,我在其中设置将从中调用dll的应用程序,当以这种方式调用时,应用程序崩溃了,非常可怕。我不知道问题出在这个dll上还是出在该行为的可执行文件上,这只是我想解决的无数问题之一。我在想,应该有一些调用允许dll无限期地旋转,直到调试器附加到进程,此时我应该能够通过附加到进程来调试dll。那有意义吗?有更好的方法吗? 最佳答案 我曾经使用D

c# - 如何查看 c++ 和 c# dll 依赖项?

我有一个python项目,它调用一个c++包装器dll,该dll调用一个c#cominteropdll。在我的电脑上,安装了所有的框架和程序,我的项目运行得很好。但在刚刚格式化的计算机中却没有。我已经安装了c++2008redistribute并且c++部分正在工作,但是当我从它调用一个函数时(将调用c#通讯器),它给出了一个错误。我想知道c++和c#dll的dll依赖项是什么,看看缺少什么:) 最佳答案 看起来你需要DependencyWalker. 关于c#-如何查看c++和c#dl

vue3+vite+typescript出现does not provide an export named ‘xxx‘ 解决方法

vue3+vite+typescript出现doesnotprovideanexportnamed‘xxx’解决方法。在使用TinyMCE富文本组件时,出现以下错误:Therequestedmodule‘/src/main/ts/components/EditorPropTypes.ts?t=1674647216370’doesnotprovideanexportnamed‘IPropTypes’。对应EditorPropTypes.ts中的代码:exportinterfaceIPropTypes{apiKey:string;cloudChannel:string;id:string;init

c# - C++ dll 和 C# 调用

我有一个用C++编写的调用COM接口(interface)函数的函数它的签名:BOOLfunc(LPWSTRstrIn,__outLPWSTRstrOut){//initcom//dosomething//releasepointers}在C#中:[DllImport("funcdll.dll")]staticexternboolfunc(StringstrIn,refStringstrOut);//useitfor(inti=0;i我已经在C++控制台应用程序中测试了我的dll,它工作正常,但在C#中它崩溃并出现未知错误。 最佳答案

c# - 调用从 c# 返回 char* 的 c++ dll 函数。不能使用 DllImport()

我有一个带有2个函数的c++dllconstchar*getVersionText1(void);voidgetVersionText2(constchar**res);这两个函数都返回一个描述产品版本的字符串。第一个函数将其作为constchar*返回(这意味着它在内部分配和处理定位它),第二个函数获取指向char*的指针并将其设置为指向描述版本的char*。我想从C#调用这些函数并显示文本。我不能使用[dllimport...]风格,因为函数调用的顺序很重要。我首先调用构造函数而不是getVersion,最后调用析构函数。所以dll必须先加载到内存中。您能否发布打印这两个函数文本的

C# DLLImport for C++ dll

我有一个用C++/CLI和.NET构建的.dll。因此,它针对.NET应用程序。API是一组使用托管类型的包装器,因此它是NET原生的。我导入了.dll并添加了如下函数:[DllImport(@"maplib.dll")]publicstaticexternboolinitialize(stringa);当我在我的C#代码中调用这个函数时,它工作正常,但如果我想添加另一个函数,比如..[DllImport(@"maplib.dll")]publicstaticexternboolinitialize(stringa);publicstaticexternboolrunfile(stri

c++ - Windows 上 Mingw 的 DLL 依赖项

我正在开发一个程序,该程序使用autotools作为其构建系统并在Linux上编译良好。为了为windows构建,我试图让mingw交叉编译器为windows工作。现在,当我在linux上编译并移动到windows时,我当然会丢失一些默认情况下未安装在windows上的dll。这会导致缺少dll错误。由于LGPL的限制,我无法静态链接我的程序。所以我的问题是在这种情况下交叉编译的正确方法是什么?我觉得我需要将我的exe包装在一个安装程序中,该安装程序会自动解析并安装Windows的dll依赖项,但我无法找到解释如何执行此操作的内容。基本上我在考虑yum/apt-getforwindow