草庐IT

dll丢失

全部标签

c++ - 初始化变量在函数调用后丢失值

问题说明了一切,真的。我不确定是什么问题。我刚上课;我对他们的实践经验几乎为零,但我已经阅读了很多关于他们的文章。我已经使用以下构造函数创建了一个类ECardECard::ECard(intbankNum,intPIN){m_BankNum=newint;m_PIN=newint;m_Barred=newbool;m_Amount=newdouble;*m_BankNum=bankNum;*m_PIN=PIN;*m_Barred=false;*m_Amount=100.0;}然后我用EC卡(12345,54321)初始化我还有一个成员函数display(),它简单地打印出所有成员变量B

c# - 一个解决方案中的非托管 DLL 项目和托管 WinForms 应用程序

我使用的是VisualStudio2008Professional,我需要创建包含两个项目的解决方案。第一个项目是托管WinFormsC#项目,第二个是非托管DLLC++项目。我在VS2008中创建了它们,在非托管DLL项目中我导出了返回一些int的简单函数。在托管WinForms项目中,我以通常的方式导入DLL并尝试在标签中打印返回值:[DllImport("DllProj.dll",EntryPoint="GetSomeInt",SetLastError=true)]privatestaticexternintGetSomeInt();但是当我构建解决方案并运行时,我得到了DllN

c++ - 如何找出我的 DLL 增长如此之多的原因

我一直在处理的一个DLL最近变大了很多。是否有任何工具可以告诉我对此负责的是什么?例如,它是实例化次数过多的模板,还是第3方库,或者是boost?我正在寻找一种关注大小而不是性能的分析器。 最佳答案 您是在谈论DLL的字节大小吗?尝试使用dumpbin实用程序。这可以向您显示DLL中的内容。/ARCHIVEMEMBERS应该向您展示各个对象模块。http://support.microsoft.com/kb/177429 关于c++-如何找出我的DLL增长如此之多的原因,我们在Stack

c++ - 如何导出类函数,而不是 DLL 中的整个类

我开发了一个Win32DLL,在下面提供了详细信息,并想为函数Connnect和LogOut创建一个CLI/C++包装器。我知道可以从DLL导出整个类和函数。classCClientLib{public:CClientLib(void);//TODO:addyourmethodshere.__declspec(dllexport)boolConnect(char*strAccountUID,char*strAccountPWD);__declspec(dllexport)voidLogOut();private:Account::RefUserAccount;voidset_Activ

c++ - 为什么 Windows 10 中 kernel32.dll 上的 GetFileVersionInfo 返回版本 6.2?

我正在尝试检索kernel32.dll版本以执行Windows版本检查。然而,出于某种原因,即使kernel32.dll的版本(如文件属性中所示)为10.0.10586.0,返回的版本为:6.2.10586.0怎么会呢?DWORDdwDummy;DWORDdwFVISize=GetFileVersionInfoSize(lpszFilePath,&dwDummy);LPBYTElpVersionInfo=newBYTE[dwFVISize];if(GetFileVersionInfo(lpszFilePath,0,dwFVISize,lpVersionInfo)==0){returnF

c++ - 是否有真正的 64 位版本的 msvcr80.dll?如果不是,为什么不呢?

我已阅读链接,该链接回答了是否有64位版本的VisualStudios(VisualStudio64bit?)的问题。简单的答案是否,但32位VisualStudio开发环境可以生成64位可执行文件。问题:1)是否有64位版本的Microsoft可再发行库msvcr80.dll?我已经在我的Windows764位机器上安装了可再发行组件包,并且在winsxs子目录中找到的所有拷贝(总共7个)在它们的标题部分中表明它们是32位的。2)这不是真的吗:a)32位可执行文件无法加载64位dll?b)64位可执行文件无法加载32位dll?c)如果msvcr80.dll的所有版本都是真实的)32位

c++ - 为什么从 DLL 内部分配的内存在 FreeLibrary() 之后变得无效?

我今天遇到了这个错误,原来是因为我在调用FreeLibrary()后使用了一个字符串从我的DLL中分配。这是一个重现崩溃的简单示例。这进入DLL:voiddllFunc(char**output){*output=strdup("Hello");//strdupusesmalloc}这是在加载DLL的EXE中:voidexeFunc(){char*output;dllFunc(&output);std::strings1=output;//Thissucceeds.FreeLibrary(dll);std::strings2=output;//Thiscrasheswithaccess

c++ - 在不丢失索引信息的情况下对 std::vector 进行排序

我想在不丢失索引信息的情况下使用存储值对std::vector进行排序。例如,std::vectorvec;vec.resize(3);vec[0]=20;vec[1]=10;vec[2]=6;std::sort(vec.begin(),vec.end());//HereIwanttoknowtheorderofindicesaftersortoperationwhichis2,1,0 最佳答案 您想保存原始vector的排列,因此您需要另一个vector来从{0,...,n-1}构建正确的双射到{0,...,n-1}:vector

c++ - Win32。在 dll 中启用视觉样式

我没有C++和WinAPI方面的经验,如果这个问题是新问题,我很抱歉。我有DLL,我可以在其中创建一些组件,例如MessageBox。我添加了pragma注释以启用视觉样式,但它不起作用(我从这个答案中知道它不应该:windows7styleforcomboboxoninternetexplorertoolbar,how?Dll代码(省略export等):#include"stdafx.h"#include"my-dll.h"#include#pragmacomment(linker,"\"/manifestdependency:type='win32'name='Microsoft.

c# - 从 c# 调用的 c++ dll 导出函数返回字符串

我正在尝试从C++dll导出函数返回一个字符串。我从c#调用这个函数。我在互联网上看到了很多例子,我真的很困惑该怎么做。我的导出函数的C++代码:extern"C"__declspec(dllexport)char*__cdeclgetDataFromTable(char*tableName){std::stringst=getDataTableWise(statementObject,columnIndex);printf(st.c_str());char*cstr=newchar[st.length()+1];strcpy(cstr,st.c_str());returncstr;}