草庐IT

c# - 我们如何在 VC++ 中使用 .NET dll?

请建议我在VC++项目中使用.NETdll的最佳方法。 最佳答案 使其可见。参见linktext 关于c#-我们如何在VC++中使用.NETdll?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1802929/

c++ - 我可以通过编程推断出 C++ dll 使用的调用约定吗?

假设您想编写一个程序来测试c++dll文件中的函数。您应该允许用户选择一个dll(我们假设我们正在谈论c++dll)。他应该能够获得dll导出的所有函数的列表。然后,用户应该能够从列表中选择一个函数名称,手动输入参数列表(参数都是基本类型,如int、double、bool或char数组(例如c类型字符串))并尝试使用指定的参数运行选定的函数。他想知道函数是否使用指定的参数运行,或者它们是否会导致它崩溃(例如因为它们与签名不匹配)。主要问题是C++作为一种强类型语言,要求您在编译时知道函数调用的参数的数量和类型。在我的例子中,我根本不知道这些参数是什么,直到用户在运行时选择它们。我想到的

c# - 从 C# 调用非托管 .dll 的性能

使用以下语法从C#应用程序调用以C++编写的.dll会增加多长时间的典型开销?[DllImport("abc.dll",EntryPoint="xcFoo",CallingConvention=CallingConvention.Cdecl)]publicexternstaticResultFoo(outIntPtrsession,[MarshalAs(UnmanagedType.FunctionPtr)]ObjectCallbackcallback,UInt64turnKey,stringserverAddress,stringuserId,stringpassword);有没有更有

c# - 在没有 COM 的情况下从非托管 C++ 应用程序调用 C# dll

有没有办法在不使用COM的情况下从c++非托管应用程序调用c#dll? 最佳答案 您可以使用ReverseP/Invoke来做到这一点-示例和讨论here. 关于c#-在没有COM的情况下从非托管C++应用程序调用C#dll,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4465639/

c++ - x64 系统上的 win32 应用程序运行时错误(dll 加载),同时编译 0K

我最初在win732bits上用VC9.0设计了一个win32应用程序。我最近升级到win764位,并尝试构建+执行以前的应用程序。构建运行良好(win32应用程序),但在运行时出现错误“[...]已退出,代码为-1073741701(0xc000007b)。”我猜这是加载64位版本的[预期]32位dll的结果。这个项目的具体依赖是:文件库SDL主程序库SDL_ttf.libopengl32.libglu32.libwininet.libSDL和SDL_ttf仅在32位版本中。我假设VisualStudio足够聪明,可以在我请求win32应用程序时获取\syswow64中的opengl

c++ - 如何在命名空间中导入 C++ 类的 dll

我阅读了一些文档,其中提供了与C兼容的函数的简单示例。__declspec(dllexport)MyFunction();我对此很满意。我写了一个小应用程序使用这个dll的功能。我使用了显式链接LoadLibrary()函数。C风格的函数可以毫无问题地工作。但是当我把我的课写成namespaceDllTest{classTest{public:__declspec(dllexport)Test();__declspec(dllexport)voidFunction(int);__declspec(dllexport)intgetBar(void);private:intbar;};}#

c++ - 防止从 Dll C++ 注入(inject) Dll

我对C++中的反dll注入(inject)有一些疑问。我有一个基于C++的游戏,我遇到了黑客注入(inject)dll的问题。然后我需要阻止它。我从那里找到通知Hook:MSDN-NotificationHooks但我不知道如何使用它。是否可以使用notifyhook来防止dll注入(inject)?这怎么可能?(有更好的例子)。可以来自dll吗?(有例子更好)。感谢您阅读该帖子。PS:对不起我的英语。 最佳答案 算了,除非你做非常复杂的事情,否则它是行不通的。我所说的复杂是指类似于Skype中使用的代码混淆、反调试技术。看看thi

c++ - "the procedure entry point _ZNSt8_detail15_List_node_base7_M_hookEPS0_ could not be located in the dynamic link library libstdc -6.dll."

有个小问题。我有C++代码,它链接到一些库。我以前有源代码的(原始)exe,它在第一台机器上运行完美。还有第二台机器,我在那里处理源代码,更改它,等等。在第二台机器上,该源代码的构建工作正常,当我复制second.exe并尝试在第一台机器上运行它时萌芽它显示错误信息"theprocedureentrypoint_ZNSt8_detail15_List_node_base7_M_hookEPS0_couldnotbelocatedinthedynamiclinklibrarylibstdc++-6.dll."有一件事,second.exe被复制到与original.exe相同的文件夹中,

c++ - 在注入(inject)的 DLL 中调用函数?

使用C++,我有一个创建远程进程并向其中注入(inject)DLL的应用程序。有没有办法让远程应用程序从创建它的应用程序执行从DLL导出的函数?是否可以向该函数发送参数?请注意,我试图避免在DllMain中做任何事情。 最佳答案 注意:要获得更好的答案,请seemyupdatepostedbelow!好的,这就是我如何做到这一点的:BOOLRemoteLibraryFunction(HANDLEhProcess,LPCSTRlpModuleName,LPCSTRlpProcName,LPVOIDlpParameters,SIZE_T

c# - VS2010 模块列表中缺少 DLL

我真的一直在用这个问题撞墙。我有一个包含C#和C++代码项目的解决方案。我经常调用C++DLL,它们是通过P/Invoke从C#编译到这个项目中的。没问题。据我所知,通过*.sln文件以及C++和C#文件的所有必要调试器设置都已正确设置。注意:我经常能够毫无问题地调试类似的P/InvokedC++代码!自然地,我想也许符号没有加载——然而,在打开模块窗口时,我发现我试图进入的DLL甚至没有列出!在我的C#程序中运行函数确实使用了DLL(我得到了正确的输出),但是,在观察模块窗口时,DLL仍然没有出现。有人知道发生了什么事吗?tl;dr-->我在调试P/InvokedC++方面有相当多的