草庐IT

AppInit_DLL

全部标签

C# 没有从非托管 C++ dll 中捕获未处理的异常

我有一个从C#应用程序调用的非托管C++dll,我试图让C#应用程序捕获所有异常,以便在dll由于非托管异常而失败时用户将收到一条一般的错误消息(C#应用程序是一个实现其自己的http处理程序的Web服务)。我遇到的问题是并非所有类型都被捕获。因此,如果我创建以下内容并执行C#应用程序,则dll会引发错误并且整个应用程序终止。有什么想法吗?这是在VS2005中创建并使用.Netframeworkv2C++-测试.h#ifndefINC_TEST_H#defineINC_TEST_Hextern"C"__declspec(dllexport)voidProcessBadCall();#e

c++ - 使用 dll 导出类时 __declspec(dllimport) 的未解析外部符号

我想定义一个基于dll导出类的派生类。基类在ProjectA中定义,派生类在ProjectB中。首先,在项目A中,定义了预处理器MYDLL_BUILD。我使用头文件来指定导出/导入:#if!defined(MYDLL_BUILD)#pragmacomment(lib,"myDll.lib")#endif#ifdefined(MYDLL_BUILD)#defineMYDLL_API__declspec(dllexport)#else#defineMYDLL_API__declspec(dllimport)#endif然后我定义基类:classMYDLL_APIDllObject{publ

c++ - 使用 dll 导出类时 __declspec(dllimport) 的未解析外部符号

我想定义一个基于dll导出类的派生类。基类在ProjectA中定义,派生类在ProjectB中。首先,在项目A中,定义了预处理器MYDLL_BUILD。我使用头文件来指定导出/导入:#if!defined(MYDLL_BUILD)#pragmacomment(lib,"myDll.lib")#endif#ifdefined(MYDLL_BUILD)#defineMYDLL_API__declspec(dllexport)#else#defineMYDLL_API__declspec(dllimport)#endif然后我定义基类:classMYDLL_APIDllObject{publ

C++ 带有 dll 的单例类

我用类创建了一个静态库:classCLog{private:CLog();......public:staticCLog&GetInstance(){staticCLogInstance;returnInstance;}voidWrite(char*cpPr);};#defineLogCLog::GetInstance()这个库链接到一个dll和一个主程序。该dll由LoadLibrary加载。在这种情况下,很明显在主exe和dll中调用Log.Write会创建两个单独的CLog实例。任何想法如何解决此问题并仍然提供动态加载dll? 最佳答案

C++ 带有 dll 的单例类

我用类创建了一个静态库:classCLog{private:CLog();......public:staticCLog&GetInstance(){staticCLogInstance;returnInstance;}voidWrite(char*cpPr);};#defineLogCLog::GetInstance()这个库链接到一个dll和一个主程序。该dll由LoadLibrary加载。在这种情况下,很明显在主exe和dll中调用Log.Write会创建两个单独的CLog实例。任何想法如何解决此问题并仍然提供动态加载dll? 最佳答案

c++ - 在 Windows 2000 中使用 Visual Studio 2010 编译的 C++ DLL 时出现问题

我有一个用非托管C++编写的非常简单的DLL,我可以从我的应用程序访问它。我最近切换到VisualStudio2010,DLL从55k下降到35k没有代码更改,现在它不再在Windows2000中加载。我没有更改任何代码或编译器设置。我有我为0x0500定义的设置,它应该包括Windows2000支持。有没有其他人遇到过这个问题,或者对我能做什么有任何想法? 最佳答案 VisualStudio2010cannotbuildbinariesthatrunonWindows2000.实际上比这更糟糕,theywon'trunonWind

c++ - 在 Windows 2000 中使用 Visual Studio 2010 编译的 C++ DLL 时出现问题

我有一个用非托管C++编写的非常简单的DLL,我可以从我的应用程序访问它。我最近切换到VisualStudio2010,DLL从55k下降到35k没有代码更改,现在它不再在Windows2000中加载。我没有更改任何代码或编译器设置。我有我为0x0500定义的设置,它应该包括Windows2000支持。有没有其他人遇到过这个问题,或者对我能做什么有任何想法? 最佳答案 VisualStudio2010cannotbuildbinariesthatrunonWindows2000.实际上比这更糟糕,theywon'trunonWind

c++ - 找不到用于 DirectX 编程的 d3dcompiler_43.dll

我正在尝试学习DirectX编程。但我遇到了障碍。我似乎缺少这个文件:d3dcompiler_43.dll我已安装(按此顺序):VisualStudio2012Windows8WindowsPhone8SDKWindows8SDK我想我需要一个DirectXSDK,但是这个link说我没有:StartingwithWindows8,theDirectXSDKisincludedaspartoftheWindowsSDK.我应该只安装DirectXDistributable吗?我担心这会给我dll,但我也会错过其他东西......这是我得到的确切错误:UnabletoloadDLL'd3

c++ - 找不到用于 DirectX 编程的 d3dcompiler_43.dll

我正在尝试学习DirectX编程。但我遇到了障碍。我似乎缺少这个文件:d3dcompiler_43.dll我已安装(按此顺序):VisualStudio2012Windows8WindowsPhone8SDKWindows8SDK我想我需要一个DirectXSDK,但是这个link说我没有:StartingwithWindows8,theDirectXSDKisincludedaspartoftheWindowsSDK.我应该只安装DirectXDistributable吗?我担心这会给我dll,但我也会错过其他东西......这是我得到的确切错误:UnabletoloadDLL'd3

c++ - Visual Studio 2010 C++ DLL 项目 - 没有输出 DLL 文件!

我可以编译DLL项目而没有任何错误。它说“构建成功”。但我在Debug或Release文件夹中没有看到任何DLL文件。只有.exp、.lib和.pdb文件 最佳答案 VisualStudio2010默认将输出文件放在$(SolutionDir)\Debug或$(SolutionDir)\Release中。您很可能正在查看项目中的Debug和Release文件夹——它们是中间文件夹。要找出输出文件的位置,请打开项目属性>常规>输出目录。默认情况下,它是$(SolutionDir)$(Configuration)\,它在您的解决方案目录