Tag: dll

visual studio在debugging模式下附加到进程

我有一个奇怪的问题。 我build立的DLL(让我们称之为my.dll)在Visual Studio 2010中使用第三方库(称为tp.lib),反过来调用第三方DLL(说tp.dll)。 debuggingprupose我有在configuration属性 – >debugging – >命令:Excel.exe和configuration属性 – >debugging – > commandArguments:“$(TargetPath)” 在我的电脑中,我也设置PATHvariables到tp.dll所在的目录 现在,当我在Visual Studio中打开F5时,excel打开了my.dll并崩溃,给我一个“无法在dos模式下打开”的错误。 发生这种情况的原因是部署了my.dll的debugging版本时未部署tp.dll。 当我打开Excel的实例单独和手动删除my.dll的debugging版本,然后一切工作正常,我可以看到我写my.dll中的所有函数 唯一的问题是现在我不知道如何debugging,因为我不知道如何将视觉工作室附加到Excel的实例,我打开了分开。 我的问题是: 1>如何将Visual Studio附加到已经打开的Excel实例 要么 2>我怎样才能打开F5,并仍然使Excel从PATHvariables中指定的目录中拿起所需的tp.dll,然后开始部署my.dll。 这两个中的任何一个都将允许我为了debugging的目的而逐步完成代码。 提前致谢。

如何在C#中编写调用C ++ DLL导出函数的excel插件

我想创build一个excel插件。 我有一些C ++ DLL导出在各种类中定义的一些函数。 我想用这些函数创buildexcel插件。 为此,我试图创build一个演示插件,模拟计算简单的兴趣。 这是低于C ++ DLL源文件。 //SimpleInterest.CPP #include <iostream> using namespace std; #include "CalSimpleInterest.h" namespace simpleInt { // total interest double calculateInterest:: CalSimplInterest(double Principal, double Rate, double Time) { double interest = 0.0; interest = (Principal * Time * Rate) / 100; return interest; } } 相似的头文件 //CalSimpleInterest.h namespace simpleInt { class […]

不能使用AddFromFile添加DLL引用

我正在尝试从Excel VBA使用COM可见的.NET DLL。 使用regasm注册DLL时,我已经成功,然后通过VBA Developer窗口中的Tools – > References菜单项手动添加对它的引用。 但是,我现在正在尝试注册DLL而不使用regasm命令,以便Excel文件可以在任何计算机上使用,而无需注册DLL。 到目前为止,这是我所尝试的: Dim JART_Instance As Object Sub Initialize() Dim RefPath As String, X As Byte Const RefName = "JART xxx" RefPath = Application.ActiveWorkbook.Path & "\JART\JART.dll" With ActiveWorkbook.VBProject.References For X = 1 To .Count If .Item(X).Description Like RefName Then .Remove .Item(X) End If Next .AddFromFile (RefPath) End With […]

Excel VBA AllocConsole:在控制台中select的文本之后,Dll例程冻结

我的应用程序有一个Excel前端。 我正在使用VBA来调用我的C / C ++ DLL,它完成所有的数字处理。 VBA用于在Excel和我的C ++ dll之间传递数据,并生成图表等。 在我的C ++ DLL中,我使用AllocConsole()函数来显示一个控制台窗口,在其中显示状态更新和结果。 每当我在控制台窗口中select(使用鼠标)一些显示的文本时, 从Excel VBA调用的任何C ++ dll函数(select后)冻结,我的应用程序变得无法响应。 我无法解决这个问题。 我不知道控制台窗口中的select对我的应用程序造成什么影响。 任何想法如何解决这个问题?

如何通过DLL函数的参数将variables返回给Excel?

我有一个C ++函数,通过使用VC2013构build的DLL在Excel 2013中使用: double my_function(double input) { //do something return input*input; } 在Excel VBA中,我包含这样的function: Declare Function my_function Lib "DLL_with_my_function.dll" (ByVal input As Double) As Double 到目前为止,这个工作很好,但是现在,我希望能够通过第二个参数返回第二个信息,说错误代码。 理想情况下,这个错误代码可以输出到Excel中的单元格,或者至less通过debug.print输出到控制台。 我被困在使整个事情工作,并有多次Excel崩溃。 这是我毫无结果的尝试: double my_function(double input, long *error_code) { *error_code = 5; return input*input; } #in Excel: Declare Function my_function Lib "DLL_with_my_function.dll" (ByVal input As Double, ByRef error_code as […]

从MS Excel vba代码调用c#dll – 编译错误:未find方法或数据成员

这是我从哪个DLL生成的C#图书馆我还启用了属性 – >应用程序,构buildCOM可见性 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace howto_dll_for_excel { [ComVisible(true)] [ClassInterface(ClassInterfaceType.None)] [ProgId("howto_dll_for_excel.CSharpTools")] public class CSharpTools { [ComVisible(true)] public string AddBrackets(string value) { return "[" + value + "]"; } } } 我试图访问MS Excel中使用VBA作为活动X的DLL 我添加了这个vba代码的dll的引用,然后创build一个button,这是macros定义 Sub Button1_Click() Dim sheet As Worksheet Dim tools As howto_dll_for_excel.CSharpTools Dim value […]

如何使Excel函数包含暂停而不拖延Excel

我有一个Excel“项目”,其中包括一个.dll,我已经写了一些复杂的统计计算,通过VBA调用。 我已经这样做了速度的原因。 这个计算大概需要一秒钟。 由于它们是通过VBA调用的,因此在计算过程中会停止Excel,这是可以接受的。 (Excel的select不是我的,而是第三方select传递数据的方式的结果) 但是为了这个项目的目的,我不得不在一秒钟之后,十点钟之后计算结果。 我可以扩大计算的准确度,或者只是在代码中join暂停。 但是由于它是通过VBA完成的,所以整个项目拖延了十秒钟,这是不可接受的。 我已经研究过ExcelDNA,因为它完全避免了VBA,并且可能使得通过VBA和ExcelDNA或现有的函数构build完成所有的工作成为可能。 我修改了这个例子来testing: A Third Way: DNA? 并包含一个简单的Thread.Sleep(10000); 到代码来模拟暂停。 但是,在计算过程中,Excel也会暂停。 有没有办法在函数中包含一个暂停,不会使Excel等待结果,而是将结果“推送”到单元格/单元格“订阅”结果? 可以通过ExcelDNA,XLL或通过第三种解决scheme来完成吗? 我更喜欢一个可以使用C或非常轻微修改的C的区域,因为所有的统计函数都是用C语言编写的。

DLL函数名称限制 – 函数名称末尾的数字是否正确?

我正在使用Xlw框架,它为在Excel中编写C ++加载项提供了方便的包装。 我遇到了一个问题:当我在Excel中命名一个用于Excel的Excel函数时,该函数在Excel中没有被“暴露”(即由加载项加载)。 当我删除最后一位数字,或者在函数名称中包含数字,但用非数字结束函数时,它显得很好。 AddTwo(double x) // available in Excel Add123Two(double x) // available in Excel Add2(double x) // not available in Excel (C ++ Excel加载项简单地将.dll重命名为.xll以及.dll内容中的其他一些细节)。 我还没有看到任何相关的Microsoft命名限制导出的.dll函数,但我的问题是:是否可以创build一个导出的.dll函数的数字作为其最后的字符? 如果是这样,我猜这个问题是Excel或Xlw框架相关。

VBA:使用dll标记为限制的function

我写了一个C#的DLL使用TCP套接字发送信息从客户端到服务器。 我从我的dll使用StartClient函数,但运行到错误:function标记为受限,或该函数使用Visual Basic中不支持的自动化types。 该错误发生在returnValue = sabatheWise.StartClient(端口,IpAddress,缓冲区)行,StartClient以黄色突出显示。 我认为这个错误是由于我已经确定的参数之一。 此外,即使我声明端口为一个int在我的DLL,当我看在VBA中的对象浏览器,我看到端口被确定为长。 如果我把端口设置为长或整数,我的VBA代码没有什么区别,我收到同样的错误。 任何指导,将不胜感激。 这里是VBA代码: Sub TestProgram() Dim port As Long port = 15050 Dim IpAddress As String IpAddress = "192.123.456.78" Dim buffer() As Byte 'Dim BufferSize As Integer 'BufferSize = 16048 Dim sabatheWise As TCPMessage.AsynchronousClient Set sabatheWise = New TCPMessage.AsynchronousClient Dim returnValue As Long returnValue = sabatheWise.StartClient(port, IpAddress, […]

智能感知无法检测vb.net创build的DLL函数

相当简单的答案,我会想,但我似乎无法find一个直接的答案。 我可以看到围绕这个问题的很多,但没有涉及到这个特殊情况(见下面的最接近的答案,我可以find) 我创build了一个使用vb.net的.dll并导入它在Excel中使用没有问题。 当我调dim并set这个类的实例时,intellisense会提取库和类的名称,但是从那里函数/variables或子例程名称不显示。 例程和variables编译和运行完全正常,但我希望这个库可用于其他人,所以intellisense将是非常有益的。 VB.net中的示例代码: Namespace wtf Public Class samplerJam Public jjj As String Public Sub method1() jjj = "Hello" End Sub End Class End Namespace 我错过了一些非常简单的事情吗 (发现类似的问题的答案,但根据设置,我应该能够看到我的子/function)