Tag: dll

excel xll:函数内调用函数的名称

我有c + + xll程序,这是使用微软excel sdk buit。 有没有任何的excel4v()或excel12v()函数,可以告诉我的名称的Excel用户定义函数,它被调用。 例如说我有两个Excel用户定义函数my_func1()和my_func2()。 说我有另一个函数func(),这是由my_func1()和my_func2()调用。 里面的func()我想把这个excel4v / excel12v函数来确定哪个用户定义函数(my_func1()或my_func2())调用func()。 有没有办法做到这一点 ?

string的变体数组包含替代空格

我创build了一个C ++ DLL,当从VBA调用时返回SAFEARRAY *。 我的VBAfunction: Declare Function GetData_V Lib "xyz.dll" (ByVal path As String, ByVal id As String, ByRef inputArr() As String, ByRef output() As String) As Variant() 我的C ++实现: SafeArrayLock(*outputArray); for (LONG i = 0; i < countElements; i++) { CComBSTR bstr = CComBSTR(outputCustom[i]); SafeArrayPutElement(*outputArray, &i, bstr); } SafeArrayUnlock(*outputArray); delete [] outputCustom; return *outputArray; […]

我需要设置一个Excel工作表的path,以便我可以使用相对path来加载一个DLL

我的Excel电子表格工作正常,当DLL有一个绝对path,但是当它在同一目录中,我没有指定一个path,只是把该名称的DLL,它无法find它。 当我尝试 Debug.Print CurDir C:\TEMP\TestAPSOutput\Simple2Room 但是这是不对的。 我怎样才能重置这个指向在实际的电子表格的目录,因此希望加载DLL? 谢谢,詹姆斯

请求Excel执行C#代码

是否有可能要求Excel启动一个C#方法? 你将如何在Excel中实现这样的呼叫? (即,而不是在VB编程,我想用C#编程) 我可以想象使用VB-macros在后台启动一个C#应用程序,但也许你知道一个更好的方法? 例如,C#代码将在特定的Excel单元格中单击时执行。

我是否需要安装Office才能使用Microsoft.Office.Interop.Excel.dll

我试图开发一个新的应用程序来处理Excel文件。据我所知 – 为了使用内置的Excel操作function,我需要安装Microsoft Office (我是对的)? 或者我可以只下载的DLL Microsoft.Office.Interop.Excel.dll ,添加一个参考,并使解决scheme在每台机器上工作?

VBA Excel找不到DLL

我目前正试图在Excel工具中添加控件到Power Analyzer。 该公司提供USB驱动程序和相应的模块和DLL。 我将这些DLL添加到System32文件夹以确保它们在path中被读取。 导入模块并尝试运行该程序后,出现“未find文件”错误。 然后,我试图硬编码DLL的位置,我收到了同样的错误。 我查看了互联网,我发现唯一的问题可能是从DLL中缺less的依赖项。 我试图使用的一个例子是: Declare Function TmSend Lib "tmctl.dll" (ByVal id As Long, ByVal msg As String) As Long 这条线是制造商提供的模块的一部分。 有什么我错过了让这个工作? 我想确保在联系制造商之前。 编辑: 似乎制造商上传了一个损坏的DLL导致问题出现。 使用Dependency Walker检查文件时,甚至无法读取DLL。

我应该参考哪个Microsoft Word(和Excel)Interop程序集或DLL?

我正在使用VB.NET和.NET 3.5框架。 我试图使用他们各自的PIA自动化word和excel来获得intellisense帮助,然后(因为用户没有安装PIA程序集/ dll)删除引用,以便它将作为COM对象调用而不会引发错误。 我发现这篇文章: http : //msdn.microsoft.com/en-us/library/15s06t57.aspx但它并没有真正帮助我什么版本的程序集/ DLL我应该使用。 当我去添加一个引用,我看到这样的东西: 然后 然后 注意所有这些突出显示的声音都很相似,并且有多个版本的程序集。 我开始的链接build议与产品版本相关联的DLL的名称(如WORD版本12 — Microsoft.Office.Interop.Word.dll),但没有说明PIA程序集的版本 。 那么我怎么知道哪一个使用? 还有一个更好的问题:为什么这不是明显的地方? 所有我想要的是微软说:“嘿,你想自动与Word 2007的邮件合并?使用[在这里插入有意义的DLL名称(PIA或”工具“程序集?)]顺便说一句,你可以在这里得到的DLL [ “这里”超链接到我需要的下载]。使用可能安装了2007或2010年的计算机?确保你有两个DLL(如果是这种情况),这里是你如何testing:[插入有用例]。 (例如“对于Word 14(即Word 2010),请使用Microsoft.Office.Interop.Word DLL版本12.0.0.0”(是这种情况吗?我不知道。)) 这应该是显而易见的 ,它不似乎是如此。 也许这是显而易见的? DLL的版本是否与程序的版本相同? (即Microsoft.Office.Interop.Word DLL版本12.0.0.0 =?= WORD版本12) 也许我在想这个,但对我来说还是不明显的。 如果你能回答第一个问题,我会很高兴,但如果你能解释这两个问题,那会更好。

是否有可能通过将其添加到.xlsm.zip文件中将mysql.dllembedded到excel文件中

我遇到的问题是,运行Excel工作簿的客户机可能会或可能不会安装MySQL的对象库。 我不希望客户端必须安装任何东西来运行工作簿。 我知道可以将.xlsm上的扩展名文件更改为.zip文件,并在文件夹中添加文件,将扩展名更改回原来的状态。 我的想法是通过上述过程将.dll添加到excel文件。 我只是不知道如何从VBA引用.dll。 如果这是可能的.dll将简单地存储在工作簿本身,我永远不会得到那个恼人的“缺less库引用”错误。 有什么build议么?

使用Excel VBA中的C ++ DLL位置的无法解释的行为

我最初发布这个作为一个答案与文件位置在Excel / Fortran DLL连接故障,因为问题似乎相似。 但是由于这是一个涉及fortran的老问题,我决定发布一个新的问题,因为我认为更多的人会在c ++上有这方面的经验(对不起,第一次发布在这里,请耐心等待)。 从VBA调用c ++ dll引用第二个c + + dll的问题出现。 我这样做的原因是因为我正在使用不同的DLL项目共享一些相似的function,所以我想有一个单一的实用程序的DLL,他们都可以参考。 我的设置是: Visual Studio Express 2013 V12.0 Excel 2010 V14.0(64位),VBA V7.0 当只有一个dll项目时,一切正常。 在其最简单的forms中,我有一个名为“a”的解决scheme,其中包含一个名为“a”的项目,其中包含以下两个文件: // a.cpp void __stdcall a() {} // a.def EXPORTS a 我在项目属性页面的链接器input下指定a.def作为模块定义文件,然后编译生成a.dll文件。 在VBA中我有: Declare PtrSafe Sub a Lib "C:\ … \a.dll" () Sub test() a End Sub a.dll是在“C:\ … \ Visual […]

VBA调用C ++ DLL – 错误48(找不到文件)

我有一个Excel工作簿,调用我在C ++中编写的testingDLL。 DLL的path在VBA中被硬编码。 该DLL使用的唯一文件是stdlib和iostream。 在我的机器上,它的作品。 在其他几个办公室机器上工作。 但是,当我尝试通过Excel调用DLL的其余部分,我得到错误48 – 文件未find。 我的理解是错误53是文件丢失; 错误48是缺less依赖关系。 我已经使用依赖沃克,并没有发现任何问题。 然而,我发现,如果我在一台机器上安装Visual Studio,安装完成后,有90%的机会可以完美地运行Excel文件/ DLL。 在10%,它不起作用,我重新启动并重新运行Visual Studio安装,select“修复”,并在安装完成后,Excel / DLL组合工作。 所以基本上安装Visual Studio允许DLL加载的Excel。 如果我卸载Visual Studio的DLL仍然正常工作。 显然,这意味着这些机器上缺less一些东西,但是我不知道是什么 – 我已经尝试过单独安装“程序”下显示的所有部分,比如最新的.net框架,visual c ++可重新分发等等。 ..它不工作。 唯一可行的是安装Visual Studio本身。 我不确定如何继续,因为要求用户安装5gig ISO并安装开发人员环境并不是很理想。 啊哈,我发现了这个问题。 事实certificate,它需要2个DLL文件 – msvcr120.dll和msvc120.dll。 我有我的System32文件夹中的这2个文件,但不是在我的SysWOW64文件夹中。 只要我填充该文件夹,然后DLL开始工作。 我发现在谷歌与“相同”的问题,但没有答案的许multithreading,所以如果你遇到同样的问题,我会build议使用依赖沃克,并确保DLL在两个系统文件夹是安全的(虽然我怀疑System32是只需要64位的DLL,而SysWOW64则需要32位的DLL)。