2

我想在我的 C# 类中导入我的 DLL,但不是这样:

[DllImport(@"C:\Users\user\Documents\Visual Studio 2010\Projects\KeyDll\Debug\DLLWrap.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?DivSet@MyCall@MyFunc@@SAPADPAD@Z")]

我想像这样在项目中找到路径:

[DllImport(@"...\Debug\DLLWrap.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?DivSet@MyCall@MyFunc@@SAPADPAD@Z")]

这样它就可以在解决方案所在的本地文件夹中查找。

有什么建议么??

问候

4

2 回答 2

1

您可以简单地使用相对网址,例如:

[DllImport("DLLWrap.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?DivSet@MyCall@MyFunc@@SAPADPAD@Z")]

默认情况下,您的应用程序将在工作目录(您的本地文件夹)中搜索该文件。

在 Winforms 中,您始终可以通过以下方式确保它使用您的工作目录

[DllImport(Application.StartupPath + "\\DLLWrap.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "?DivSet@MyCall@MyFunc@@SAPADPAD@Z")]
于 2013-07-17T22:23:20.710 回答
0

将 DLL 的属性编辑为“内容”和“始终复制”

将 P/Invoke 语句中的 DLL 引用为 @"DLLWrap.dll"

于 2013-07-17T22:03:05.623 回答