草庐IT

c# - C# AnyCPU 项目能否包含平台特定的 dll

我们的产品基于大量C++项目,但我们现在将C#项目用于前端。我们现在也在做64位版本。我们的计划是将所有C#dll构建为AnyCPU。C#项目将引用公共(public)bin文件夹中的C++dll。在构建x64时,bin文件夹将包含我们的c++dll的x64版本,而在构建Win32时,bin文件夹将包含我们的C++dll的32位版本。因此,C#项目将构建AnyCPU,但包括x64或Win32c++dll。我的问题是,这行得通吗?在运行时,一切都应该是全部32或全部64,具体取决于我们正在运行的exe,但是编译时可以处理针对包含平台特定dll的AnyCPU的项目吗?还是我们必须制作所有C

c++ - 从 C++ 调用 dll 函数

我在一个dll中有一个函数,我想从我的C++应用程序中调用它。该dll也是用C++制作的,并且有一个def文件,它显示了dll中存在的函数。我正在使用visualstudio2010,我通过在链接器“附加库目录”中添加dll的目录,然后在链接器的“输入”中添加DLLname.lib,将其配置为使用dll文件。现在dll中的所有命名空间都可用,但是我需要的函数不可用,因为它们不在任何命名空间下。我该如何访问这些功能?这些函数在dll中声明为这样#include"stdafx.h"#include__declspec(dllexport)intsomefunction(){......re

c++ - 如何将 DLL 反转为 C++ 代码?

我知道将dll逆向为C++代码是不可能的,所以我想从中收集尽可能多的细节。这不是我的dll,所以我当然没有源代码。我应该使用哪个程序? 最佳答案 好吧,如果你技术娴熟,你可以反汇编DLL并了解它的所有功能。这会花费大量时间,但如果您这样做了,您可以手动将其还原回源。否则,您可以先使用DependencyWalker之类的工具来获取它所依赖的DLL和函数,以及它导出的函数。从那里您可以找到您感兴趣的函数,并使用像IDA这样的反汇编程序来查看它们的作用。 关于c++-如何将DLL反转为C++

.NET CORE,N层应用程序,如果服务层对Microsoft.extensions.options.dll具有依赖性

直接问题是:microsoft.extensions.options.ioptions是否仅在伞应用程序的上下文(在这种情况下为Web应用程序)或类库中使用?例子:在N层ASP.NET核心应用中,我们拥有的服务层取决于来自来自的某些设置appsettings.json文件。我们首先从startup.cs中的这些线开始的东西:services.Configure(options=>{options.OptionProperty1=Configuration["OptionXSection:OptionXProperty"];});然后在服务构造函数中:ServiceConstructor(IOp

.net - 如何跨 VS 版本制作一致的 dll 二进制文件?

例如,winsock库适用于所有版本的visualstudio。但是我很难在所有版本中提供一致的二进制文件。用VS2005编译的dll链接到2008年写的应用程序就不能用了。我把2k5和2k8都升级到SP1了,结果没有太大变化。它可以正常工作。但是,当他们将其包含在C#应用程序中时,C#应用程序会出现访问冲突错误,但对于经典的C++应用程序,它可以正常工作。当我提供dll时,有没有我应该知道的策略? 最佳答案 首先,除了普通的旧数据外,不要跨DLL边界传递任何数据。即结构很好。类不是。其次,确保所有权没有被转移——即任何通过dll边

c++ - 来自一个 dll 的函数调用另一个 dll 的同名函数

我有一个特殊的问题。我有两个DLL,我们称它们为DLL-A和DLL-B。DLL-A有一个名为f1()的函数,DLL-B也有一个同名函数f1()。现在在DLL-A中,f1()像这样调用DLL-B的f1()。DLL-A:f1(){f1();//thisisDLL-Bfunction,buthavingthesamename}现在我的问题是,它会是从DLL-A递归调用f1()吗? 最佳答案 如您所料,函数体内的f1()调用自身导致无限递归。一些可能的解决方案:将导入的DLL函数放在一个单独的命名空间中,这样你就可以区分它的名字。更改这些函

c++ - 是否可以在 C++ 中构建没有依赖项的 DLL?

我想用我的C#应用程序部署一个非常简单的DLL,但是我在VisualStudio2008中构建的任何DLL似乎都依赖于“Microsoft.VC90.CRT”。是否可以在没有这种依赖性的情况下使用VS2008构建DLL?我怎样才能知道是什么导致了依赖性? 最佳答案 我不确定最新的VC++版本,但以前您可以告诉链接器链接MSVCRT运行时库的静态版本而不是动态(DLL)版本。这个选项可能仍然存在。 关于c++-是否可以在C++中构建没有依赖项的DLL?,我们在StackOverflow上找

c++ - 与普通 DLL 相比,使用 COM 有什么优势?

假设您只在C++世界中工作(不需要跨语言互操作)。您认为使用COM而不是普通的基本DLL有哪些优势/不便?如果您不打算使用来自不同语言的界面,您认为使用COM值得吗? 最佳答案 每个人都在提到COM的加号列中的内容。我会提到几个缺点。当您使用COM实现您的系统时,您需要在安装时注册COM“服务器”(无论是进程内还是进程外),并在卸载时注销它们。这可能会稍微增加设置系统的复杂性,并且往往需要重新启动,除非用户先小心地拆除正在运行的进程。与做同样事情的其他标准方法相比,COM速度较慢。此评论可能会引起很多仇恨,也可能会产生一些反对票,但

c++ - 如何在 Delphi 中调试 DLL 文件

我是一名VisualC++开发人员,但在我的项目中有一些Delphi组件。我需要调试Delphi组件来解决一些问题。在调试中生成一个DLL文件,然后在Delphi中开始调试,必须具备哪些条件? 最佳答案 在Delphi7中你会这样做:项目|选项|编译器|调试|调试信息(检查)然后去运行|参数|托管应用程序并输入您的exe的名称。在您的DLL代码中添加一些断点,然后单击运行。您的exe将被加载,您可以在DelphiIDE中调试DLL部分。如果您的exe已经在运行,请单击运行|附加到进程--我对此进行了测试,发现我还需要在Delphi7

【傻瓜级JS-DLL-WINCC-PLC交互】3.JS-DLL进行交互

思路JS-DLL-WINCC-PLC之间进行交互,思路,先用VisualStudio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与WINCC之间进行连接,实现WINCC与PLC之间连接,最后自己封装方法把他们串联起来。目录思路JS-DLL进行交互实现1.实现思路2.引用谷歌浏览器控件及使用(windows.exe类型项目,可以使用方便调试,博客最下面放了JS-DLL-WINCC-PLC交互案例!)3.使用效果​编辑4.JS-DLL-WINCC-PLC交互案例JS-DLL进行