Tag: dll

VBA面向对象编程

这个问题是上一个问题的扩展: 在VBA中返回一个对象 现在,我想知道如何声明和初始化VBA中的对象。 看来我会这样做: Declare Function ConnectMe Lib "C:\Windows\System32\cm.dll" (ByVal Arg1 As String) As ConnectMe Declare Function login Lib "C:\Windows\System32\cm.dll" (ByVal Arg1 As String, ByVal Arg2 As String) As Boolean 然后,在这行下面,我可以使用这个代码: dim cm as new ConnectMe cm.ConnectMe("216.239.51.99") cm.login("username","password") 但是,当我这样做,它给了我一个“用户定义types未定义”错误。 我怎样才能正确地声明这个C ++类,以便我可以在VBA中创build和使用一个实例? 谢谢。

无法加载文件或程序集“volmodelexcel.dll”或它的一个依赖项

我遇到了这个.dll文件的问题。 我曾尝试使用Dependency Walker,它告诉我:“警告:由于延迟加载相关模块中缺less导出function,所以至less有一个模块导入未parsing。 与SHLWAPI.DLL和MPR.DLL上的红色标志。 当我运行我的C#程序时,我得到:“无法加载文件或程序集”volmodelexcel.dll“或它的一个依赖关系,指定的模块找不到。 还有一个Excel电子表格和说明来设置它。 错误发生在第2步:2.手动注册DLL,“regasm / codebase somelocation / volmodel / bin / volmodelexcel.dll”这给了我: Microsoft(R).NET Framework程序集注册工具2.0.50727.3053版权所有(C)Microsoft Corporation 1998-2004。 版权所有。 RegAsm:错误RA0000:无法加载文件或程序集“volmodelexcel,Version = 1.0.0.1,Culture = neutral,PublicKeyToken = 53504c71e2f5ab54”或其依赖项之一。 无法授予最低权限请求。 (来自HRESULT的exception:0x8 0131417) 可以做些什么来find问题。

从VBA调用C ++ DLL,出现“访问冲突写入位置”错误

我有一个Excel VBA项目,我想从Visual Studio 2013输出的C ++ DLL中调用一个函数。我已经添加了对DLL的引用。 当我尝试在VSdebugging器中运行它时,附加到我使用以下函数调用DLL函数的Excel实例: Private pw_ As Long Private Sub class_initialize() pw_ = ProjectWiseAPI.CreateProjectWise(True) End Sub 我得到这个错误: Unhandled exception at 0x0EBE8536 (libProjectWise.dll) in EXCEL.EXE: OxC0000005: Access violation writing location 0xFFFFFFFF. 它打破了这个function: PWAPI CreateProjectWise(LPVOID *obj, VARIANT_BOOL showErrors) { *obj = new XYZ_ProjectWise::ProjectWise(showErrors != FALSE); return S_OK; } 特别是在*obj赋值行上。 另外,当我正在使用Excel文件本身,而不是与VS,当我编译VBA项目,我得到这个错误: File not found: T:\location\of\dll\libProjectWise.dll […]

我如何使用VBA中的VisualBasic-Express for Excel或Access项目?

我将我的VB-Express代码保存为.dll,并用regasm注册并创build了一个.tlb文件。 但是,当我尝试运行一个Excel模块中的函数时,我得到: 运行时错误'453':无法findDLL入口点在kernel32中的RegisterServiceProcess 我错过了什么步骤?

如何使用IDispatch从非托pipec ++调用C#的DLL?

我有一个C#DLL,我需要从非托pipeC ++调用。 我的主要问题是我的c ++代码对应于一个excel插件,可以安装excel 2003和excel 2007,当我在excel 2007中安装我的加载项,我尝试调用我的C#DLL,它工作得很好,但由于某种原因,我仍然无法find,在Excel 2003中崩溃,Excel显示我一个运行时错误信息,当debugging我的C代码,我可以看到代码失败时试图创build我的C#DLL的实例,它说,即使我注册regasm类没有注册。 这是我的C#代码: namespace ManagedDLL { [ Guid("3C80EE60-D9B8-4daf-89BE-6C7B748F613C"), InterfaceType( ComInterfaceType.InterfaceIsDual), ComVisible(true) ] public interface ICalculator { [DispId(1)] int main(string args, IntPtr _handle); }; [ Guid("5134F342-5B7F-4db2-94F0-F450610419CF"), ProgId("myapp.CCOMEntryPoint"), ClassInterface(ClassInterfaceType.None), ComDefaultInterface(typeof(ICalculator)), ComVisible(true) ] public class COMEntryPoint : ICalculator { public int main(string args, IntPtr _handle) { string[] _args = args.Split(new char[] { […]

无法加载文件或程序集“Microsoft.Office.Interop.Excel,版本= 14.0.0.0

我有网站,使用MS Excel文件读/写。 我添加了相关的DLL到网站的Bin文件夹,它在我的本地主机上工作完美(我认为我已经在我的电脑上安装了MS Excel 2010) 但是,当我上传到远程PC并运行该网站,它会引发错误: 无法加载文件或程序集“Microsoft.Office.Interop.Excel,版本= 14.0.0.0,文化=中立,PublicKeyToken = 71e9bce111e9429c”或其依赖项之一。 定位的程序集清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040) Bin文件夹中的文件是: Microsoft.Vbe.Interop.dll office.dll Microsoft.Office.Interop.Excel.dll Microsoft.Office.Interop.Excel.xml office.xml 我在远程电脑上安装了“Microsoft Office 2010:主互操作程序集可重新分发”, http://www.microsoft.com/en-us/download/details.aspx?id=3508 但同样的错误ocurrs。 如何解决这个问题? 谢谢。

检查Excel的DLL和dynamic加载

我正在使用Microsoft.Office.Interop.Excel将数据写入Excel文件,我在我的机器上安装了Excel 2010。 但是我需要程序在老版本的Excel上运行。 该程序应该检查安装在特定的机器上的版本,并dynamic加载DLL,以免得到一个遗漏参考错误.. If Excel 2003 is available, use it. Else If a higher Excel version is available, use it Else show an error message since this means that Excel is not installed in the machine 有没有办法做到这一点? 我真的很难find一个解决scheme。 任何帮助,将不胜感激。 提前致谢..

在VS2010的VB.NETdebugging过程中,Excel加载项无法加载(xx.dll)

VS2010,VB.NET。 使用function区创buildExcel加载项。 当我开始debugging(F5)时,Excel启动查找但我的加载项不加载。 Excel 2010打开后,出现以下错误消息: 无法加载文件或程序集'SatelliteRibbon,Version = 1.0.0.0,Culture = neutral'或其依赖项之一。 给定的程序集名称或代码库无效。 (从HRESULTexception:0x80131047) 它似乎在另一个开发人员的机器上正常工作。 我在插件启动和function区加载中设置了断点。 他们从不执行。 我有源代码和文件在一个可信的位置。 所有的macros,等我已经设置为“允许”或启用。 有任何想法吗?

如何永久删除或更新Excel中的VBA引用?

我的应用程序使用macros来生成一些图表,并使用对某些应用程序dll的引用。 我已经将整个应用程序从32位转换为64位,包括dll。 但其中的一个引用似乎仍然是指我以前使用的32位dll。 现在,即使当我尝试在引用中添加新的dll文件,它得到不同的命名,因此我无法从macros代码创build此dll的对象。 它给我一个错误说: 自动化错误:库未注册 相应的代码: On Error GoTo errNoDatabase Set server = CreateObject("Bemmsdb.Server") 'server.Connect "SQLOLEDB", "BACKUP", "", "", "Trusted_Connection=Yes" 'Set db = server.OpenDatabase("BEMMS") server.Connect "", "", "", "", "" Set db = server.OpenDatabase("") GoTo errSkip errNoDatabase: MsgBox "Unable to open database. Be sure to select a database in PowerScape before running the 'Query […]

使用C ++ DLL的Excel-VBA有时会崩溃

我只用一个函数做了一个非常简单的c ++ dll: int DLL_EXPORT __stdcall foo(double *source){return 0;} 我正在尝试使用它: Option Explicit Private Declare PtrSafe Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPtr Private Declare PtrSafe Function FreeLibrary Lib "kernel32" (ByVal hLibModule As LongPtr) As Long Private Declare PtrSafe Function foo Lib "MyLibrary.dll" (ByRef arr As Double) As Long Sub test_foo(n […]