标签: dll

如何安全地将对象(尤其是STL对象)传入DLL或从DLL传递?

如何将类对象(尤其是STL对象)传递给C++ DLL?

我的应用程序必须以DLL文件的形式与第三方插件交互,我无法控制这些插件构建的编译器.我知道STL对象没有保证ABI,我担心我的应用程序会导致不稳定.

c++ windows dll stl abi

99
推荐指数
4
解决办法
3万
查看次数

我如何解决log4net不断改变publickeytoken

我们有一个asp.net 4.0项目,它使用了几个依赖于log4net 1.2.10.0版本的框架.今天我尝试包含一个依赖于log4net版本1.2.11.0的新框架,从那时起我就被困住了:

log4net 1.2.10.0有publickeytoken = 1b44e1d426115821

log4net 1.2.11.0有publickeytoken = 669e0ddf0bb1aa2a

由于这些不同,我不能通过web.config中的运行时元素使用程序集重定向(使所有框架使用相同版本的log4net)或代码库(仅使新框架使用版本1.2.11.0).

我有什么选择?

(以及为什么哔哔声会让log4net不断更改版本之间的publickeytokens,因为据我所知,丢失的密钥是在1.2.9.0和1.2.10.0版本之间切换的原因,他们是否再次丢失密钥?我会自愿提供我的Dropbox如果他们需要它,以保证安全......)

编辑:好的,所以log4net的人显然认为用两个密钥发布是一个好主意,但这意味着你使用的每个框架需要就他们喜欢的两种风格中的一种达成一致,或者那些框架不能正常工作在同一个应用程序域中.我是唯一发现这个可怕想法的人吗?如果每个人都这样做,那么一切都会崩溃,对吧?

Edit2:正如我所说,我没有在我的业务代码中使用log4net,但是我使用了几个依赖于1.2.10.0的框架,当我尝试使用依赖于1.2.11.0的新框架时出现问题(新密钥) ),所以Stefans的回答并不适用,因为新的框架会期望新的密钥,而不是旧的密钥

.net dll log4net publickeytoken

98
推荐指数
3
解决办法
3万
查看次数

使用dllexport从DLL导出函数

我想要一个从C++ windows DLL导出函数的简单示例.

我想看看标题,cpp文件和def文件(如果绝对需要).

我希望导出的名称不加修饰.我想使用最标准的调用约定(__stdcall?).我想使用__declspec(dllexport)而不必使用DEF文件.

例如:

  //header
  extern "C"
  {
   __declspec(dllexport) int __stdcall foo(long bar);
  }

  //cpp
  int __stdcall foo(long bar)
  {
    return 0;
  }
Run Code Online (Sandbox Code Playgroud)

我试图避免链接器为名称添加下划线和/或数字(字节数?).

我没有支持使用相同标头的dllimport和dllexport.我不想要任何有关导出C++类方法的信息,只需要c风格的全局函数.

UPDATE

不包括调用约定(并使用extern"C")给出了我喜欢的导出名称,但这意味着什么?是什么默认调用约定我得到什么pinvoke(.NET),声明(vb6)和GetProcAddress会期望?(我猜对于GetProcAddress,它将取决于调用者创建的函数指针).

我希望在没有头文件的情况下使用这个DLL,所以我真的不需要很多花哨的#defines来使调用者可以使用头文件.

我的回答是我必须使用DEF文件.

dll winapi visual-c++ name-decoration

97
推荐指数
2
解决办法
11万
查看次数

Dependency Walker报告缺少IESHIMS.DLL和WER.DLL?

在带有Internet Explorer 8的Windows XP Professional SP3上,当我在我的可执行文件上运行Dependency Walker时,它报告:IESHIMS.DLL和WER.DLL无法找到.

  1. 我需要这些DLL吗?
  2. 我在哪里可以买到它们?

我相信他们应该位于C:\ Windows\System32\Wer.dll和C:\ Program Files\Internet Explorer\Ieshims.dll

dll dependency-walker internet-explorer-8 windows-xp-sp3

96
推荐指数
2
解决办法
15万
查看次数

如何使Visual Studio将DLL文件复制到输出目录?

我有一个依赖外部DLL文件的Visual Studio C++项目.在构建项目时,如何使Visual Studio自动将此DLL文件复制到输出目录(调试/发布)?

dll visual-studio visual-c++

94
推荐指数
6
解决办法
10万
查看次数

Java.library.path中的java.lang.UnsatisfiedLinkError no*****.dll

如何在我的Web应用程序中加载自定义dll文件?我尝试了以下方法,但失败了.

  • 复制system32文件夹中所有必需的dll 并尝试在Servlet构造函数中加载其中一个System.loadLibrary
  • tomcat_home/shared/lib和中复制所需的dlltomcat_home/common/lib
  • 所有这些dll都在WEB-INF/libweb应用程序中

java dll java-native-interface web-applications

88
推荐指数
6
解决办法
33万
查看次数

是否有任何本机DLL导出函数查看器?

是否有任何免费的本机Windows DLL导出函数查看器,它显示函数名称及其参数列表?

dll native function dllimport

88
推荐指数
4
解决办法
11万
查看次数

Java错误打开注册表项

当我尝试在命令提示符下对Java执行任何操作时,我收到此错误:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment.3'
Error: could not find Java.dll
Error: could not find Java 2 Runtime Environment
Run Code Online (Sandbox Code Playgroud)

几天前,我确实在删除Java目录和注册表.我重新启动计算机,java仍然工作正常,然后我今天再次重新启动它,现在我收到此错误.我尝试过卸载并重新安装,但这似乎不起作用.我安装了最新的Java JRE,并在环境变量中设置了路径.任何人都有任何线索如何解决这个问题?

java registry dll runtime

87
推荐指数
7
解决办法
14万
查看次数

.dll和.exe之间的区别?

我想知道dll和exe文件之间的确切区别.

windows dll exe

86
推荐指数
7
解决办法
9万
查看次数

"ViewBag"这个名称在当前上下文中不存在

我正在尝试在我的应用程序中使用ViewBag,我有所有最近的dll,最新版本的MVC 3,但我仍然得到错误:

"当前上下文中不存在'ViewBag'这个名称"

我甚至已经卸载然后重新安装了MVC 3但是没有任何变化.

另外,我不相信这些dll会出现在GAC中.

可能是我的问题?或者如何将dll添加到GAC?

dll gac viewbag asp.net-mvc-3

86
推荐指数
5
解决办法
14万
查看次数