我必须为C++框架构建一个API,它可以执行一些模拟操作。我已经使用__declspec(dllexport)函数创建了一个新类,并将框架构建为DLL。这工作正常,我可以在C#应用程序中使用该框架。但是是否有其他或更好的方法来使用C++创建API? 最佳答案 如果您想创建一个C++-API,从DLL/共享库导出一组类是可行的方法。许多用C++编写的库决定提供C接口(interface),因为纯C接口(interface)更容易绑定(bind)到外语。要将外语绑定(bind)到C++,通常需要SWIG等包装器生成器。C++-API也有
我有一个DLL,我想在我的C#代码中使用它的函数以下是该DLL的功能:extern"C"{__declspec(dllimport)constchar*__stdcallZAJsonRequestA(constchar*szReq);__declspec(dllimport)constwchar_t*__stdcallZAJsonRequestW(constwchar_t*szReq);__declspec(dllimport)constBSTR__stdcallZAJsonRequestBSTR(BSTRsReq);}谁能告诉我如何在c#项目中使用它,因为这个dll似乎是用其他语言编
问题是包含PR_Write()的DLL调用的不是npsr4.dll,而是nss3.dll和Hook无法从不存在的库中找到GetProcAddress()。我正在尝试创建FirefoxHook,它从PR_Write()Firefox方法(它位于nspr4.dll中)收集数据。我在谷歌上搜索了很多,并尝试了很多方法来做到这一点,但不幸的是,当我注入(inject)钩子(Hook)时,Firefox崩溃了。首先,我尝试不使用DLL,使用这个方法http://redkiing.wordpress.com/2012/04/30/firefox-formgrabber-iii-code-injec
我有一个.dll,其中包含一些带有特定/自定义接口(interface)的directshow过滤器(COM)。大多数第3方directshow组件包含可用于跨环境通信(C#typelib导入)的嵌入式.tlb文件。我不愿意尝试手动创建c#所需的接口(interface),因为没有提供idl/tlb文件。是否可以从COM.dll生成一个tlb(或者至少是一个idl,我可以通过MIDL编译它)? 最佳答案 是的,可以对IDL(或非常接近它的东西)进行逆向工程/反汇编。您需要做的是给自己一个新的C++控制台项目,它提供默认代码#incl
我添加了MyAssembly.dll作为对我的查询的附加引用,并且工作正常:我可以毫无问题地使用它的各种类。MyAssembly.dll中的一个类的其中一个方法引用了另一个dll(Wrapper.dll)。Wrapper.dll使用[DllImport]访问C++dll(C.dll)中的功能:[DllImport("C.dll",CallingConvention=CallingConvention.StdCall,EntryPoint="CPlusPlusFunction")]internalstaticexternUInt32_CPlusPlusFunction([MarshalA
在我之前的修订版游戏引擎中,我为C#的游戏编辑器移除了主要功能。现在,我开始用静态库修改游戏引擎。已经有一个用C++创建的动态库来使用DLLEXPORTforC#。刚才我想测试新功能并从C++创建一个DLL文件。因为DLL包含类,所以我想知道如何才能使用DLL导出。我会这样做吗:[DLLEXPORT("GameEngine.dll",EntryPoint="SomeClass",Conventional=_stdcall)]staticexternvoidfunctionFromClass();我感觉它可能是DLLImport而不是DLLExport。我想知道我该怎么做?我考虑的另一种
如何在C++Builder中使用C#.NETDLL?我想在C++Builder中使用C#dll类的功能。 最佳答案 为了在Windows下从非托管代码调用托管代码,您几乎必须通过COM。在您的情况下,这意味着将您的C#库构建为COMVisible并将其注册为COMInteroperation。然后您需要以正常方式从C++代码调用您的COM对象。有一个很好的答案here它完成了实现这一目标所需的步骤。 关于c#-在C++Builder中使用C#.NETDLL?,我们在StackOverfl
我想编写一个C++DLL并从Delphi6应用程序调用它。我从教程中的简单HelloWorld代码开始,尽管它在从C++程序调用时运行良好,但在Delphi应用程序中它会导致以下错误消息MyDll.h#ifndef_MY_DLL_H_#define_MY_DLL_H_#ifdefinedMY_DLL#defineMYDLL_API__declspec(dllexport)#else#defineMYDLL_API__declspec(dllimport)#endifextern"C"{MYDLL_APIintHelloWorld();}#endifMyDll.cpp#defineMY_
我正在尝试使用VisualStudioCommunity2013为Notepad++编写一个插件dll从解决方案构建得很好,如果我将它复制到notepad++/plugins目录,我可以测试功能。但是,我现在想调试它,但无法启动调试器。我尝试关注paint.netguide但我仍然得到错误Unabletostartprogram.....dll在配置属性-调试下的项目属性中,我有以下设置:Command=C:\tools\Notepad++\notepad++.exeWorkingDirectory=C:\tools\Notepad++配置属性-构建事件-我拥有的构建后事件:Comma
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion我承认这个问题听起来很笼统。但毕竟,从DLL导出类是一个普遍而困难的话题,坦率地说,我目前在一个相当普遍的层面上感到困惑。简短的问题:C++和DLL中的面向对象编程如何结合在一起?长题:看完this和this,我有点失望和困惑,因为我想知道如果DLL边界不允许共享对象(假设两个DLL使用了不同的编译器或编译器版本),面向对象编程如何与DLL一起工作。导出类的唯一选项是这些(如here或here所述):导出