草庐IT

dll丢失

全部标签

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

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

c++ - 在 DLL 中创建线程

我正在开发一个.NET探查器,它是用C++编写的(一个使用ATL的dll)。我想创建一个线程,每30秒写入一个文件。我希望线程函数成为我的一个类的方法DWORDWINAPICProfiler::MyThreadFunction(void*pContext){//Instructionsthatmanipulateattributesfrommyclass;}当我尝试启动线程时HANDLEl_handle=CreateThread(NULL,0,MyThreadFunction,NULL,0L,NULL);我得到了这个错误:argumentoftype"DWORD(__stdcallCP

c++ - 警告 C4244 : 'argument' : conversion from 'double' to 'const int' , 可能丢失数据

我正在定义“*”运算符以使用“NumericArray”类模板。代码如下:templateNumericArrayNumericArray::operator*(constT&factor)const{NumericArraynewArray(Size());for(inti=0;i当我尝试将类型为“int”的“NumericArray”(NumericArray)与“*”运算符一起使用时,当“factor”参数为double时:intArray1=intArray1*2.5;我收到以下编译器警告:warningC4244:'argument':conversionfrom'doubl

c++ - 使用多线程调试 DLL (/MDd) C 运行时库构建静态 Opencv 库

我现在正在尝试使用cmake构建opencv,如果我使用以下命令:cmake-DBUILD_SHARED_LIBS=OFF..我可以构建静态OPENCV库。但是,构建的库静态链接C运行时库。在VC2010中,它使用多线程调试(/MTd)选项。我期望的是动态链接C运行时库,并且在VC2010中使用/MDd选项,那么我该怎么做才能使它成为可能?谢谢。 最佳答案 将-DBUILD_WITH_STATIC_CRT=OFF添加到CMake命令行:cmake-DBUILD_SHARED_LIBS=OFF-DBUILD_WITH_STATIC_C

当 SQL Server(mssql-jdbc) 遇上 BigDecimal → 精度丢失,真坑!

开心一刻  中午和哥们一起喝茶  哥们说道:晚上喝酒去啊  我:不去,我女朋友过生日  哥们瞪大眼睛看着我:你有病吧,充气的过什么生日  我生气到:有特么生产日期的好吧需求背景  系统对接了外部系统,调用外部系统的接口需要付费,一个接口一次调用付费0.03元  同一个月内,同一个接口最高付费25元  统计每个月的付费情况  需求清楚了不?不清楚?给大家举个案例  这下明白了吧  明白了需求,相信大家都会觉得很简单,不就是一个分组汇总吗?  客官说的对,但生活总会给我们一点 surprise   我们慢慢往下看环境准备   SQLServer 版本: SQLServer2017    MySQL

c++ - msvcp110.dll,我该如何绕过它?

我遇到以下问题:我使用MicrosoftVisualStudio2012并将msvcp110.dll添加到我的版本中。我在这里和那里阅读了一些帖子,我知道这是由于我同时使用iostream和string并将其链接到我的程序而引起的。我在我的PC上使用它没有问题,但我想向其他人展示它。所以我的问题是,我如何尽可能不让其他人痛苦地解决这个问题,并且仍然使用一些基本的std好东西?我知道其他人可以只安装VisualStudio运行时的东西,但这有点痛苦。 最佳答案 如果您打算保留您的申请dynamically-linked,您的最终用户需

c# - 我可以在没有 Visual Studio 的情况下编译 DLL 吗?

我打算拿aC++library,用SWIG为C#包装它(alt.link),并将C++和C#组件编译为Unity5的DLL。(C#DLL为Unity提供了到C++DLL的接口(interface)。)据我所知,编译C++和C#DLL总是需要VisualStudio(或VS附带的工具,如msbuild)。但是,我目前正在努力安装VS,这让我质疑这个假设。是否有任何其他选项可用于在Windows上编译支持Unity的DLL?(即使我安装了VS,我仍然很想知道。) 最佳答案 您可以下载MSBuild的独立版本并用它来编译你的代码,你不需要

c++ - Windows 上 DLL Exporting/Importing 和 Extern 的问题

我有一些关于Windowsdll的快速问题。基本上我使用ifdefs来处理dllexport和dllimport,我的问题实际上是关于dllexports和dllimports以及extern关键字的放置。我将dllimports/dllexports放在头文件中,但我是否必须将dllexport和dllimports放在实际定义中?对于typedef呢?我是否将dllimport/dllexport放在前面?如dllexporttypedefmapst_map另外关于extern关键字,我看到它被这样使用:extern"C"{dllexportvoidfunc1();}我也看到它被这

c++ - C++ 中的 DLL 导出和继承

我正在尝试从这样的DLL中导出一个类及其基类:#ifdefMY_EXPORTS#defineDECLSPEC_TEST__declspec(dllexport)#else#defineDECLSPEC_TEST__declspec(dllimport)#endifclassDECLSPEC_TESTBaseClass{//stuff.};classDECLSPEC_TESTDerivedClass:publicBaseClass{//Thisclassonlyhasaconstructorwhichinitializestheclassdifferently.};但是我尝试在另一个DL

c++ - 为什么构建没有预编译头文件的 DLL 在使用时会出现奇怪的错误?

总结:今天我发现在构建一个没有预编译头文件的DLL时,当您尝试使用它时会出现一个奇怪的错误。当禁用预编译header时,构建DLL会很顺利。但是,一旦附加了DLL(编译时或运行时),它就会导致错误“参数无效”。两种情况的实际错误代码都不同。附加编译时时会弹出错误代码为0xc000000d的对话框,调用LoadLibrary()时会返回NULL指针,而GetLastError()会返回0x57.编辑:我发现当增量链接被禁用时问题就消失了。在运行附加到DLL编译时的客户端时,我以某种方式错过了VisualStudio显示的以下错误:'TestClient.exe':Loaded'D:\Pr