草庐IT

rxtxserial.dll

全部标签

来自 native C++ 加载的 DLL 的 C# 形式

这个问题来自这个线程:NativeC++useC#dllviaproxyC++manageddll简而言之,我正在通过DLL将(我的)C#扩展加载到native进程中。扩展需要显示一个表单,以便用户可以控制它。我使用的是标准.NET表单,没有第3方库或任何东西,而且我的表单没有显示。更糟糕的是,它会挂起目标进程。它没有使用任何CPU,所以我感觉它在等待某个函数返回,但从未这样做过。同样有趣的是弹出了“Initializemethod”消息框,但没有弹出“Test”消息框。我已经测试了所有我能想到的东西(STAthread、线程、DisableThreadLibraryCalls,以及不

c# - 客户端获取从 C++ COM dll 返回的字节数组

我在C++COM头文件和IDL文件中有这个声明://Headerfile:#defineMAX_LENGTH320typedefBYTEPRE_KEY[MAX_LENGTH];//IDLfile:#defineMAX_COUNT10HRESULTSave([in]DWORDdwCommand,[in]floatfdata[MAX_COUNT],[out]PRE_KEY*phKey);这是C#客户端代码://AfterC#interopcompilation,themethod'ssignatureinC#becomes:Save(uintdwCommand,float[]fdata,o

c++ - 动态链接到 visa32.dll 导致崩溃

我正在尝试使用NI-VISA5.1.1通过USB与示波器通信。我的32位应用程序是使用C++和MinGW编译器(标准Qt4.7SDK)在Qt框架中编写的。当我静态链接到visa32.lib时,我的应用程序与设备通信没有问题。我的动态链接代码在Windows764位平台上也运行良好,但在运行WindowsXPSP3(32位)的两台不同计算机上崩溃。我已经追踪到导致崩溃的代码行(这是对viWrite的第一次调用)。这个问题似乎与DLL本身中全局变量的设置有关。这或许可以解释为什么它在Windows7中工作,因为在这种情况下,32位DLL文件只是一个调用64位VISADLL文件的stub。这

c++ - Operator = 不是 DLL 中导出的 C++ __interface 的成员

我一直在为库编写一些代码,并尝试使用默认的Win32控制台应用程序来运行所有内容。因为我已经完成了所有类(class),所以我想将所有内容提取到一个DLL中,因此我开始使用通常的宏进行改编:#ifdefMYLIB_EXPORTS#defineDllExport__declspec(dllexport)#else#defineDllExport__declspec(dllimport)#endif我在我的代码中使用一个接口(interface),它是这样定义的:__interfaceDllExportISerializable{voidSerialize(/*...*/);/*someo

c++ - 在 Visual Studio 2010 中从 .h 和 .lib 创建 .dll

我正在尝试从我从tngaming为他们的游戏背心获得的头文件和库文件创建一个.dll文件。到目前为止,我一直在使用thisguide,但我没有创建新的头文件,而是将我的tngaming文件添加到头文件所在的文件夹,然后使用“添加现有项目”将其添加到visualstudio内的文件夹。之后,我使用了属性->链接器->输入,我在其中添加了我的lib文件,这似乎也能正常工作。然后在tngaming.cpp中我添加了一行#include"tngaming.h"现在可以构建我的.dll,但它不起作用。当我查看它时,有\行显示诸如“堆栈内存已损坏”之类的内容。我是在正确地创建我的.dll还是我做错

c# - 如何将非托管 C++ dll 添加到 Silverlight 5 项目中

我需要在Silverlight5项目中使用我自己的非托管C++dll。因为我可以使用dllImport来使用它,即[DllImport(@"D:\myLib\Debug\myLib.dll")]staticexternintadd(IntPtrptr);它工作正常,因为我在DllImport中提到了绝对路径。但我的问题是,我想使用相对路径。因为我需要在我的silverlight5项目中添加非托管C++dll并从那里指定路径。我从过去两天开始调查,但没有找到解决此问题的方法。只有我找到了下面提到的一个相关链接,但它也没有帮助。http://msdn.microsoft.com/en-us

c++ - 释放 DLL 创建的对象

我的DLL是用LoadLibrary加载的-它们是否仍然可以共享运行时,或者我实际上是否必须确保对象在分配它们的同一个DLL中被删除?在我的示例中,我有一个在DLL模块中实现的公共(public)基类,然后由Lua对象镜像,Lua确定其生命周期。因此,我需要在Lua垃圾收集器决定释放对象时释放该对象,而且我无法预测它将从哪个DLL中进行垃圾收集。我在考虑每个DLL都具有以下函数的拷贝:intReleaseObject(lua_State*L){//objectpointerisstoredinfield[0]lua_rawgeti(L,-1,0);delete(Object*)lua_

c# - 我可以将 C DLL 的输出重定向到我的 c# log4net 输出吗

我有一个C#应用程序,它依次加载C或C++dll(依次加载其他C/C++dll)。在C#应用程序中,我使用log4net记录器将所有输出捕获到一系列日志文件中。我的应用程序作为Windows服务运行,因此没有用于正常printfs或写入stdout/stderr的输出的控制台/输出窗口。有没有一种方法可以设置C#应用程序以引导stdout/stderr(来自DLL)并将每一行转换为log4net输出。或者在C/C++DLL中是否有某种方式将stdout/stderr流连接到log4net输出?我找到了一些解决方案(此处:http://bytes.com/topic/c-sharp/an

c# - 如何从 [C# WP8.1 WRT/SL] 项目中调用 [Unmanaged C++ DLL func]

这不是“如何从C#调用C++函数”的拷贝我知道如何为常规PC应用程序执行此操作,我尝试过并且有效:这叫做P/Invoke1.CreateaC++dllproject,butyoucan'taddtheC++dllprojectasareferencetotheC#project.CopythedllfromC++,andpastethedlltotheC#exefolder2.inC#use[DllImport...]inC++useextern"C"__declspec(dllexport)...但是当我在WindowsPhone上执行此操作时,失败了。WindowsPhone有两种

c# - 从 C# 调试 C++ dll

我简单说一下情况。我有一个C#项目,它使用一些用C++创建的DLL。现在,另外,我还有一个C++项目,前段时间用来创建那个DLL。现在,我想在运行C#项目期间调试C++DLL。我在我的C#项目中启用了“启用非托管代码调试”。我开始调试C#项目并逐步执行一些功能。一切似乎都还好。当我到达一个属于C++DLL的函数时,它询问C++文件的来源,我必须浏览到我的C++项目。(在我认为它提示某些.pdb文件之前)。现在,我也设法进入了C++函数,但是当我一遍又一遍地进入时,该函数中的一些数据结构似乎没有填充数据,例如,请看下面的截图你可以看到blob数据结构是空的,DataParser也发生了同