问题标签 [dllexport]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
175 浏览

dll - 按序号导出有什么意义?

我可以看到为什么有人只想按序数导出即使用'NONAME'),这会减小导出表的大小并隐藏DLL接口的一些细节但是为什么有人会费心按序数导出函数为以及名字?据我所知,这仅允许您在导出表中显式设置序数。
我知道我一定错过了什么,有人可以补充我吗?

0 投票
1 回答
119 浏览

.net - 将 c 源文件转换为在 C# 中使用时出现问题

我对这些问题有点陌生,我有一个正在运行的 C 项目,我想在我的 C# 库中使用它,但我找不到任何帮助。

0 投票
1 回答
782 浏览

c# - 关于从 .net dll (C#) 导出函数方法

数学.dll

在我的 exe 项目中,我想使用 Add() 函数,

示例 1 - 这是有效的

示例 2 - 这不起作用

示例 3 - 这不起作用

你能告诉我不工作的例子(2,3)的错误在哪里吗?谢谢。

0 投票
1 回答
231 浏览

c++ - dllexported 附加字符串已损坏

我有一个加载 dll 的 exe。我都写了。

我正在导出一个返回 std::wstring 的函数 foo。

它所做的只是说

std::wstring blah = L"rgjwgfw";

在我导入 foo 的 exe 中,字符串已损坏。一旦我从调用 foo 的函数返回,我就会得到失败的断言。有时我会收到一条消息,说 Windows 在 foo.exe 中触发了一个断点。这可能是由于堆损坏等......这也可能是由于用户在 foo.exe 具有焦点时按 f12。ETC....

知道为什么会这样吗?如果我从 foo 中删除附加行并且 jsut 返回原始字符串,则不会发生这种情况,没有问题。

谢谢

0 投票
2 回答
3524 浏览

c# - 从 dll 构建 C# 项目

我可以使用 ILSpy 从 .NET ddl 中查看 C# 代码。是否有任何程序可以从 dll 构建完整的 C# 项目?

PS 我不想将 dll 包含到我现有的项目中。我想从 dll 中获取一些代码并了解它是如何工作的。但是直接从反射器读取代码更难。我更喜欢从 Visual Studio 读取代码,并希望从 dll 创建“类库”项目。

0 投票
0 回答
310 浏览

windows - 如何在 Visual Studio 2005 中生成 .def 文件?

可能重复:
在 Visual Studio 中自动生成 DLL .DEF 文件?

有什么方法可以在 VS 2005 中自动生成 .def 文件?

0 投票
4 回答
1490 浏览

c++ - C++ DLL 函数导出。DLL 不保持加载状态

嗨,我遇到了以下问题,我无法弄清楚发生了什么。

DLL 代码 mylib.cpp (mylib.dll):

程序代码 my_prog.cpp:

这两个文件都编译没有任何错误。每当我运行 my_prog.exe 时,它​​会给出一条消息“DLL Loaded”,然后立即给出消息“DLL unloaded”,因此 GetProcAddress() 失败。请有人为我照亮它。为什么它会立即卸载 DLL?

谢谢大家。

编辑:

我已按照c-smile 的建议将 DLL_THREAD_ATTACH 替换为 DLL_PROCESS_DETACH 。我检查并导出函数为:long __stdcall HookProc(int,unsigned int,long) (1)(0x00001000)。GetProcAddress() 仍然失败。我得到“DLL 加载”,GetProcAddress() 失败,“DLL 卸载”

0 投票
2 回答
4290 浏览

c++ - 将 dll 编译为静态库时如何处理 DLL_EXPORT?

我在 Visual c++ 2010 中有一个项目,其中包含关键头文件中的预处理器指令。其实就是ZMQ源码。

该项目通常配置为 dll,因此标头使用 DLL_EXPORT 的状态(已定义/未定义)。如果项目用于编译 dll,则 dll 项目或客户端代码都可以使用标头,这要归功于从 zmq.h 中获取的以下设置:

但是,这不支持我正在构建静态库的设置。因此我必须手动修改标题。Visual Studio 似乎可以识别 dll 项目设置并相应地处理 dll_export 的定义。是否有 Visual Studio 识别的符号,对应于静态库设置?基本上,我想通过扩展上面代码片段中使用的方法来处理静态库的编译和使用。

0 投票
2 回答
557 浏览

c++ - dll 导出/初始化问题(静态变量初始化?)Visual Studio C++

我想为 CLANG/LLVM 运行一个示例插件。具体来说llvm\tools\clang\examples\PrintFunctionNames。我设法构建了它,我看到了,PrintFunctionNames.exports但我认为视觉工作室不支持它。该文件很简单_ZN4llvm8Registry*。我不知道那是什么,但我怀疑它的命名空间 llvm,类 Registry 定义为

我怀疑关键行在示例文件的末尾

print-fns 是名称,而第二个参数是 desc。当我尝试通过加载/运行 dll

我收到一个关于找不到的错误print-fns。我怀疑它是因为静态变量永远不会被初始化,因此它永远不会注册插件。错误的 dll 名称会在加载模块消息时出错。

我创建了一个 def 文件并将其添加到我的项目中。它编译但仍然没有运气。这是我的def文件

我如何注册插件或让这个例子工作?

0 投票
1 回答
524 浏览

winapi - 未调用 SnmpExtensionInit

我正在尝试向 Windows SNMP 代理添加扩展,并遵循了可用的粗略文档。dll 已构建,两个条目已放入注册表。重新启动 SNMP 服务似乎加载了 DLL。调用 DllMain 的原因如下:DLL_PROCESS_DETACH、DLL_PROCESS_ATTACH、DLL_THREAD_ATTACH、DLL_PROCESS_DETACH。但是 SnmpExtensionInit 似乎从未被调用过。有任何想法吗?TIA。