草庐IT

DLL_EXPORT

全部标签

c++ - 将结构传递给 dll

我想将几个数据传递给Dll函数,所以我正在考虑创建一个结构并通过如下结构将它们传递给Dll函数:structoptions{intop1,intop2,intop3,char*op4,...char*op10}voiddllFunction(optionsmyOptions)无论开发工具是什么,dll都应该以在Windows平台上工作的方式实现,我想知道:这样发送数据有效吗?请注意,结构成员都是基本的c类型(int、float、double、...)。为什么我担心它?如您所知,不同的编译器以不同的方式实现std类,因此您不能通过dll边界传递std类,但我不确定是否所有编译器都以相同的

c++ - 读取dll文件中的文本文件

设置MicrosoftVisualStudioProfessional2015,在Windows10Pro上运行Unity5.3.1f1(x64)该项目建立在Unity在其site.上提供的示例项目之上。该项目可以找到here.需要做的事情我正在考虑创建一个用于Unity的opengl插件(以dll的形式)。在他们的示例代码中,vertex和fragment着色器在代码中是硬编码的,如下所示:#defineVPROG_SRC(ver,attr,varying)\ver\attr"highpvec3pos;\n"\attr"lowpvec4color;\n"\"\n"\varying"l

c++ - 你能在第 3 方 dll 中使用 std::string 吗?

我一直在寻找我的问题的答案,但似乎大多数人都对跨.dll边界传递std::string感兴趣。但我更感兴趣的是在我正在创建的.dll中的类中使用std::string。我正在向论坛上的一群人发布我的.dll(通过电子邮件发送),所以我的问题是你可以在.dll中使用std::string而没有像编译器需要相同这样的限制,版本,CRT需要相同等。你能举例说明什么是不安全的,什么是安全的吗?示例:“下载器”使用SetSender函数是否安全?邮件.hclass_declspec(dllexport)Mail{structENVELOPE{std::wstringSenderEmail;//S

c++ - 在 Visual Studio 2017 中使用 Qt 库的 CMake 项目 : can't find Qt dll when running the exe

我正在尝试将Qt库用于VisualStudio的CMake项目。我能够使用CMake找到所有Qt5组件(例如Qt5Sql和Qt5Core)。当我为测试做源文件时,我也可以访问Qt对象。然而,在我完成构建并尝试运行生成的可执行文件后,它会提示“您的计算机中缺少Qt5Sql.dll”。然后我将dll复制到可执行文件所在的构建文件夹,但这并没有解决问题。然而,虽然我认为Qt5Core也用于测试,但它并没有提示Qt5Core也没有说它丢失了。以下是我的问题:为什么Qt组件可用于源文件,但不可用于可执行文件?我应该在哪里保存dll文件以便exe文件可以找到它们?我已经阅读了很多关于静态库、动态库

c++ - 使用 GDB 在 Windows 下调试 DLL

我有一些项目由几个DLL组成,这些DLL是用MinGW编译的,带有调试信息,另一个项目的EXE目标使用这些DLL(也是用MinGW编译的)。问题是,我需要在那些DLL中的函数上放置断点,但是GDB虽然设置了断点,但只是在运行时默默地忽略了它们。进入它们(使用's'键)只是跳过它们(就像使用'n'键一样)。我怎样才能进入那些DLL?也许我应该为GDB指定一些选项?提前致谢。 最佳答案 确保使用gccoptimizationlevel进行编译标志设置为0(-O0)。 关于c++-使用GDB在

c++ - 如何删除对 mfc80.dll 和 msvcr80.dll 的依赖?

我的代码不使用MFC。但是,当我构建我的静态库时,尝试使用它的一方表示他们遇到了困难,因为我的代码库中有以下依赖项:mfc80.dll和msvcr80.dll有没有办法删除它们并重建?我正在使用vs2008。 最佳答案 静态库默认链接到动态运行时,这就是您的代码依赖msvcr80.dll的原因。VisualC++程序必须链接到运行时。您可以更改静态库以使用静态运行时来删除依赖项。这是在ConfigurationProperties|中完成的。C/C++|代码生成|运行时库设置。但是,所选的运行时库必须与链接静态库的项目中使用的相匹配

c# - 在c#项目中导入c++ dll

我正在将一些c++dll导入到c#项目中,我使用的是visualstudio2010。我已成功导入使用内置类型的函数,但是当我尝试处理结构时出现错误。这是一个简单的例子:C++代码typedeflongintTDate;typedefstruct_TMDYDate{longmonth;/*Inrange[1,12]*/longday;/*Inrange[1-31]*/longyear;/*Inrange[1600-]*/}TMonthDayYear;intJpmcdsDateToMDY(TDatedate,/*(I)TDateformat*/TMonthDayYear*mdyDate)

c++ - 如何为 C++ (MSVC 2008) 解决方案创建语言附属 DLL?

我们最终要本地化我们的应用程序,需要为字符串表创建附属DLL(从源代码中取出硬编码字符串需要一个月的时间)。我一直在查看MSDN和其他帮助,但我对实际构建语言DLL的机制感到很困惑。我们在EXE本身中有英文资源。根据我的理解,我们现在需要创建名为MyAPPXXX.dll的DLL项目。我不确定我们应该怎么做。是否只有一个资源/rc文件和文件中的不同部分,或者是否为每种语言复制了rc文件并替换了翻译?我在尝试按照我在其他地方看到的有关如何执行此操作的说明时迷路了。是否每种语言都需要一个DLL,或者我们是否有具有多种配置的同一个项目-如果是后者,如何完成?这是我读过的有关此内容的页面列表-但

c++ - 如何与 R 中的 DLL 接口(interface)?

我从Matlab创建了dll扩展。然后,我想在R中读取那个dll。我使用了dyn.load()但它不起作用。你能给我一些建议吗? 最佳答案 源代码是用什么语言写的?问题在于混合编译器。Matlabdll很可能是由VisualStudio构建的。而且你根本不能在不同的编译器之间混合C++代码,因为函数标识符会被破坏。通过一些工作,您可以混合使用C目标代码。MinGW网站上有一些常见问题解答。 关于c++-如何与R中的DLL接口(interface)?,我们在StackOverflow上找到

c++ - 尝试在 VC++ 中使用静态类函数编译 DLL 时出错

我正在尝试使用我在独立应用程序中制作和测试过的一些功能。现在我正在尝试创建一个DLL,我收到一些错误,指出该函数已被重新定义并且返回参数不匹配。这似乎是我唯一一次遇到这些错误,我已经通过删除此类对其进行了测试,它编译得很好,独立应用程序的main.cpp直接引用了这些错误。以下是错误以及h和cpp文件:Error7errorC2371:'Parser::parse':redefinition;differentbasictypesc:\users\seb\documents\visualstudio2005\projects\TestDLL\TestDLL\parser.cpp17Er