Articles of DLL

我如何从Ruby调用Windows DLL函数?

我想使用Ruby访问DLL中的函数。 我想使用C的低级访问,同时仍然保持编写Ruby代码的简单性。 我如何做到这一点?

用Go 1.7构build一个dll

有没有办法在Windows下build立一个DLL的Go v1.7? 我尝试了一个经典 go build -buildmode=shared main.go 但是得到 -buildmode = shared在windows / amd64上不受支持 更新好的,我有我的答案。 对于那些有兴趣的人: https : //groups.google.com/forum/#!topic/golang-dev/ckFZAZbnjzU

在命令行上创build并链接到Win32 DLL的确切步骤是什么?

这是我的库Lib.c文件: #include <stdio.h> int helloworld(){ printf("Hello World DLL"); } 这是我的exe Main.c文件: int helloworld(); int main(int argc, char** argv){ helloworld(); } 我想创buildLib.dll和Main.exe ,其中Lib.dll来自Lib.c和Main.exe链接。 具体步骤是什么?

如何正确创build一个nim / nimrod的Windows DLL

我想从nim代码创build一个dll。 但是我没有注册一些其他出口比“NimMainInner”。 即使我尝试这个简单的例子,它不工作: proc Hellow(): cint {.exportc.} = echo("hello") return 1 我用nim c –app:lib libh4x.nim编译它nim c –app:lib libh4x.nim和nim c -d:release –app:lib –no_main libh4x.nim 我使用Nim Compiler Version 0.11.2 (2015-05-04) [Windows: i386] 检查我使用dllexp.exe的DLL。 我也试图用python ctypes加载dll,但是我的导出都没有显示或可调用。 不过,我可以用hexeditor在生成的dll中看到proc的名字。 我在这里错过了什么?

如何将parameter passing给DLL初始化(例如,当通过LoadLibrary加载)?

如何将parameter passing给通过LoadLibrary加载的DLL的初始化函数? 有没有可能? 没有诉诸某种导出的function或共享内存,即是。

如何获得一个DLL加载过程句柄

我试图得到从DLL加载DLL的过程的句柄。 我的方法是:在DLL_PROCESS_ATTACH我调用EnumWindows(EnumWindowsProc,NULL); 我的EnumWindowsProc实现如下: BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) { if(GetCurrentProcessId() == GetWindowThreadProcessId(hWnd,NULL)){ MessageBox(hWnd,L"I loaded your dll!",L"it's me",MB_OK); return TRUE; } return FALSE; } 问题是,GetCurrentProcessId()== GetWindowThreadProcessId(hWnd,NULL)从来没有真正的(如果我放置在if块的一切工作,但它被调用每个列出的窗口之外的messagebox调用)。 有没有其他方法可以说明问题? 这种做法是完全错误的还是我错过了一些东西? 提前感谢

C ++ / CLI:公共ref结构生成C2011:'class'types的重定义

我有一个托pipeDLL项目中的头文件,如下所示: Enums.h: #pragma once … public ref struct ManagedStruct { Bitmap^ image; } … 这个头文件是从DLL中的另一个类和一个单独的可执行文件中引用的。 单独的托pipe结构正在生成: 错误C2011:'ManagedStruct':'类'types重新定义。 如果我将结构移动到DLL中的主头文件中,它可以正常工作,并且可以公开访问,所以这就是我正在做的事情,但是我非常想知道为什么当我将它移动到另一个文件时。 我已经检查了所有必要的包含和命名空间,并尝试了明显的头卫兵,无济于事; 我仍然得到错误。 非常感谢任何见解!

在同一进程中加载​​多个dll副本

我有一个由第三方生产的DLL,它具有某种内部数据结构,将其大小限制为X个元素。 所以基本上,它有一个以X为限的队列。 现在从我所知道的DLL是每个进程,但是有可能不止一次加载一个DLL? 也许每个线程? 在C#中? 或者在C ++ / CLI中? 我试图加载一个本地的C ++ DLL。

依赖于其他DLL的插件DLL

我正在编写一个DLL来插入另一个(第三方)应用程序。 该DLL将需要依赖另一组DLL(由于许可证原因,我不能静态链接)。 我想我的DLL是“xcopy-deployable”到任何目录。 我也不想要求将这个目录添加到path中。 如果我用通常的方法构buildDLL,Windows将拒绝加载DLL,因为它无法在当前进程旁边findDLL。 有没有什么好的select来帮助WindowsfindDLL? 回答一些问题: 该DLL是用C ++编写的。 额外的DLL是QT-dll。 我想将额外的DLL放在与我的插件DLL相同的文件夹中。 我可以从GetModuleFileName获取该文件夹的名称。 该应用程序是Firefox,该DLL是一个PKCS#11安全模块。 应用程序使用DL​​L的完整path加载DLL(用户在安装插件时提供它)。 要求将DLL放在System32中或应用程序旁边就可以工作,但这有点麻烦,可能会导致卸载程序出现问题。 LoadLibrary和GetProcAddress当然会起作用,但在我的情况下并不可行。 我在其他DLL中使用了数百个(如果不是数千个)方法。 我真的需要使用导入库。 我曾想过在DllMain中使用延迟加载的dll和SetDllDirectory 。 有没有人尝试过这样的事情?

如何链接一个DLL到我的项目? 错误LNK2019:无法parsing的外部符号

我有一个文件foo.h具有不同的函数声明。 所有这些函数都是在一个文件foo.dll中实现的。 但是,当我包含.h文件并尝试使用任何函数时,出现错误: bar.obj : error LNK2019: unresolved external symbol SomeFunction 所以显然function实现没有被发现。 我需要做些什么来帮助编译器findDLL中的定义并将它们与.h文件关联起来? 我已经看到一些关于__declspec(dllexport)和__declspec(dllimport)但我仍然无法弄清楚如何使用它们。