【发布时间】:2011-03-10 11:27:59
【问题描述】:
我有一个 C# 表单应用程序...我创建了一个 Dll...现在我想使用该程序启动该 dll。我该怎么做?
#include <windows.h>
typedef int (*function1_ptr) ();
function1_ptr function1=NULL;
int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
HMODULE myDll = LoadLibrary("Dll1.dll");
if(myDll!=NULL) {
function1 = (function1_ptr) GetProcAddress(myDll,"function1");
if(function1!=NULL)
function1();
else
exit(4);
FreeLibrary(myDll);
}
else
exit(6);
GetLastError();
return 0;
}
这是用于测试我的 dll 的代码......即 Dll1.dll..function1 是 dll1.dll 中的函数......我可以用 C# 代码做类似的事情吗???
【问题讨论】:
-
你在说什么“启动”一个 DLL ? dll 是类的容器。 dll 中没有入口点。
-
使用此程序调用 DLL....为了查看 DLL 是否工作...我尝试了一个调用 DLL 的代码...这帮助我弄清楚了DLL 工作
-
你所说的“dll是否工作”是什么意思你如何定义工作? dll中的每个函数?只是某一个?没有运行 dll 这样的事情。
-
您的问题意味着某种动态加载从消费者进程调用 dll,这与简单地引用您的程序集然后从您的代码中使用它不同。这是设计时间与运行时间。你应该对你问的东西更具体。
-
这相当模糊,我怀疑您的意思是“如何从外部 C 库执行函数?”或许还有“如何在运行时动态加载 c 库?”