Tag: dll

一个简单的C#DLL – 我如何从Excel,Access,VBA,VB6中调用它?

我有一个简单的类库用C#编写。 using System; namespace TestDll { public class Test { public string HelloWorld { get { return "Hello World"; } } } } 我的问题是如何从Microsoft Office Visual Basic(我认为是VB6)调用这个HelloWorld函数? 我的第一步是添加DLL作为参考 – 但在浏览和select编译的DLL消息“无法添加对指定文件的引用”。 被抛出 任何人都可以指出我正确的方向为什么/如何得到这个工作? 在此先感谢!

从DLLdynamic加载函数

我有一点看看.dll文件,我了解他们的用法,我试图了解如何使用它们。 我创build了一个包含一个函数的.dll文件,该函数返回一个名为funci()的整数 使用这个代码,我(想)我已经导入.dll文件到项目中(没有投诉): #include <windows.h> #include <iostream> int main() { HINSTANCE hGetProcIDDLL = LoadLibrary("C:\\Documents and Settings\\User\\Desktop \\fgfdg\\dgdg\\test.dll"); if (hGetProcIDDLL == NULL) { std::cout << "cannot locate the .dll file" << std::endl; } else { std::cout << "it has been called" << std::endl; return -1; } int a = funci(); return a; } # funci function […]

ImportError:DLL加载失败:%1不是有效的Win32应用程序。 但是DLL在那里

我有一个非常像ImportError的情况:DLL加载失败:%1不是有效的Win32应用程序 ,但答案有没有为我工作。 我的Python代码说: import cv2 但是,该行会引发此问题标题中显示的错误。 我在这台64位机器上安装了C:\lib\opencv OpenCV。 我正在使用64位的Python。 我的PYTHONPATHvariables: PYTHONPATH=C:\lib\opencv\build\python\2.7 。 这个文件夹包含cv2.pyd ,这就是全部。 我的PATHvariables: Path=%OPENCV_DIR%\bin;…此文件夹包含39个DLL文件,如opencv_core246d.dll 。 OPENCV_DIR具有以下值: OPENCV_DIR=C:\lib\opencv\build\x64\vc11 。 ImportError:DLL加载失败的解决scheme:%1不是一个有效的Win32应用程序说要将新的opencv二进制文件path( C:\opencv\build\bin\Release )添加到Windows PATH环境variables中。 但是如上所示,我的PATH中已经有了OpenCV二进制文件夹( C:\lib\opencv\build\x64\vc11\bin )。 而我的OpenCV安装没有任何发布文件夹(build / java下的空白文件除外)。 任何想法是什么问题? 我可以告诉Python详细追踪加载过程吗? 究竟是什么DLL寻找? 谢谢,拉尔斯 编辑: 我只注意到,根据http C:\lib\opencv\build\python\2.7 cv2.pyd C:\lib\opencv\build\python\2.7的cv2.pyd是32位,而我正在运行的机器和Python是64位的。 这可能是问题吗? 如果是这样,我在哪里可以find一个64位版本的cv2.pyd?

合并到EXE的DLL?

我有两个DLL文件,我想包括在我的EXE文件,以便更容易地分发它。 我已经在这里和那里读了一些怎么做,甚至在这里发现了一个很好的线程,但是这对我来说太复杂了,而且我需要关于如何做到这一点的基本指导。 我正在使用Microsoft Visual C#Express 2010,请原谅我的“低标准”问题,但我觉得我比其他人的经验低一到两个级别:/如果有人可以指出如何合并这些DDL文件我的EXE在一步一步的指导下,这将是非常棒的!

在C#应用程序中使用C ++类DLL

我有一个非托pipe的C ++ DLL,它只是导出一个类(不是COM …它只是一个简单的C ++类)作为它的接口。 我想在C#中使用这个类,但被告知它不能被导入到C#中。 在我的C#应用​​程序中使用这个类的正确方法是什么?

如何在Visual Studio中设置DLL文件的path?

我开发了一个依赖于DLL文件的应用程序。 当我debugging我的应用程序时,应用程序会抱怨: “这个应用程序启动失败,因为没有findxxx.dll。” 所以我必须将DLL文件复制到与我的.vcproj文件相同的目录中。 有没有一种方法来设置项目查找DLL文件(最好)相对path或(不是首选)一些绝对path? 类似的概念,我们如何在项目设置中设置包含和库path。 我的意思是当我debugging我的应用程序(打F5 )上面的错误会popup。

我如何testingWindows DLL文件,以确定它是32位还是64位?

我想编写一个testing脚本或程序来声明给定目录中的所有DLL文件都是特定的构buildtypes。 我将在SDK的构build过程结束时将此用作完整性检查,以确保64位版本不会以某种方式获取某些32位DLL文件,反之亦然。 有没有一种简单的方法来查看一个DLL文件,并确定其types? 解决scheme应该可以在xp32和xp64上运行。

如何在运行时指定path?

实际上,我得到了一个C ++(工作)DLL,我想将其导入到我的C#项目中来调用它的函数。 当我指定DLL的完整path时,它确实有效,如下所示: string str = "C:\\Users\\userName\\AppData\\Local\\myLibFolder\\myDLL.dll"; [DllImport(str, CallingConvention = CallingConvention.Cdecl)] public static extern int DLLFunction(int Number1, int Number2); 问题是这将是一个可安装的项目,所以用户的文件夹将不会是相同的(例如:皮埃尔,保罗,杰克,妈妈,爸爸,…)取决于计算机/会话将在哪里运行。 所以我希望我的代码更通用一些,如下所示: /* goes right to the temp folder of the user "C:\\Users\\userName\\AppData\\Local\\temp" then go to parent folder "C:\\Users\\userName\\AppData\\Local" and finally go to the DLL's folder "C:\\Users\\userName\\AppData\\Local\\temp\\myLibFolder" */ string str = Path.GetTempPath() + "..\\myLibFolder\\myDLL.dll"; [DllImport(str, CallingConvention […]

何时使用dynamic库和静态库

在C ++中创build类库时,可以selectdynamic(.dll)和静态(.lib)库。 他们之间有什么区别,什么时候使用哪一个是适当的?

在C#中运行时加载DLL

我想弄清楚如何在C#应用程序的运行时导入和使用.dll。 使用Assembly.LoadFile()我已经设法让我的程序加载dll(这部分是肯定工作,因为我能够得到与ToString())类的名称,但是我无法使用'输出'方法从我的控制台应用程序。 我正在编译.dll,然后将其移到我的控制台的项目。 CreateInstance之间有一个额外的步骤,然后才能够使用方法? 这是我的DLL中的类: namespace DLL { using System; public class Class1 { public void Output(string s) { Console.WriteLine(s); } } } 这里是我想要加载DLL的应用程序 namespace ConsoleApplication1 { using System; using System.Reflection; class Program { static void Main(string[] args) { var DLL = Assembly.LoadFile(@"C:\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\DLL.dll"); foreach(Type type in DLL.GetExportedTypes()) { var c = Activator.CreateInstance(type); c.Output(@"Hello"); […]