草庐IT

DLL_THREAD_ATTACH

全部标签

c++ - 什么是 "api-ms-win-*-*-lx-x-x.dll"伞形库?

我经常遇到长文件名的DLL,就这样。例如只有两个:"api-ms-win-appmodel-runtime-l1-1-1.dll"或"api-ms-win-appmodel-identity-l1-2-0.dll"。显然微软称它们为“umbrellalibraries”。我最初的理解是它们只是具有新文件名的新D​​LL,但后来我尝试搜索这些文件。好吧,我找不到它们作为磁盘上的物理文件...所以我很好奇,它们是磁盘上不存在的某种虚拟DLL文件名吗?WCHARbuff[MAX_PATH];buff[0]=0;GetSystemDirectory(buff,MAX_PATH);StringC

c# - C++ dll 返回的字符串在 C# 调用程序中已损坏,为什么?

我有一个调用C++DLL的C#应用。在C#中,我有如下代码:[DllImport(@"111.dll",CharSet=CharSet.Unicode)]publicexternstaticStringFunc1(Stringarg);......Stringarg="testtext";Stringretstring=Func1(arg);在CPP中,我定义的函数如下:extern"C"{__declspec(dllexport)LPWSTRFunc1(LPWSTRarg){....LPWSTRret1=L"1?2?3?4?5";LPWSTRret2=SomeActualFuncti

c++ - move std::thread

尝试制作简单的代码片段:std::threadthreadFoo;std::thread&&threadBar=std::thread(threadFunction);threadFoo=threadBar;//thread&operator=(thread&&other);expectedtobecalled出现错误:useofdeletedfunction'std::thread&std::thread::operator=(conststd::thread&)'我将threadBar明确定义为右值引用,而不是普通引用。为什么不调用预期的运算符(operator)?如何将一个线程m

c++ - MSVCP110D.dll 和 Visual Studio 2013

我正在尝试运行我在VisualStudio2013中编译的程序。但是,我收到错误Theprogramcan'tstartbecauseMSVCP110D.dllismissingfromyourcomputer.Tryreinstallingtheprogramtofixthisproblem.这不是一个非常有用的错误。然而,在一些谷歌搜索之后,我发现它(显然)试图动态加载一个标准的c++库,为了解决这个问题,我需要指定/MT选项而不是/MD选项。这给我留下了一些问题:它到底在做什么?/MD与/MT相比有什么好处?我的意思是,它是默认选项肯定是有原因的...我将如何着手寻找.dll并让

c++ - 如何在 Delphi 中使用由 dll 导出的 C++ 类

有没有办法在Win32的Delphi中使用由win32dll导出的C++类?是否有其他方法来实现类似的东西(COM、.NET等)? 最佳答案 你不能导入一个类。您只能导入函数。RudyVelthuishaswrittenatlengthonthetopic.尽管您不能直接使用导出的C++类,但他描述了一些实现相同效果的技术:“扁平化”对象,因此在调用方不再有对象,只有一个指针连同其他参数一起传递给DLL,用于包装对象方法的一系列函数。编写包装器非常简单,尽管它可能很乏味。使用纯虚类。WindowsC++编译器和Delphi通常具有相

c# - C# AnyCPU 项目能否包含平台特定的 dll

我们的产品基于大量C++项目,但我们现在将C#项目用于前端。我们现在也在做64位版本。我们的计划是将所有C#dll构建为AnyCPU。C#项目将引用公共(public)bin文件夹中的C++dll。在构建x64时,bin文件夹将包含我们的c++dll的x64版本,而在构建Win32时,bin文件夹将包含我们的C++dll的32位版本。因此,C#项目将构建AnyCPU,但包括x64或Win32c++dll。我的问题是,这行得通吗?在运行时,一切都应该是全部32或全部64,具体取决于我们正在运行的exe,但是编译时可以处理针对包含平台特定dll的AnyCPU的项目吗?还是我们必须制作所有C

Redission 解锁unlock异常:attempt to unlock lock, not locked by current thread by node id的解决方案

问题redission解锁异常:Redission中的"attempttounlocklock,notlockedbycurrentthreadbynodeid"解决方案方案一:lock.lock(leaseTime,Unit)不设置参数,即lock.lock(),才能触发启动Redission的“看门狗”机制(守护线程)。否则若设置了参数,则到期就释放掉锁。因为:Redisson的WatchDog看门狗机制只会在未显式设置最大持锁时间才会生效。换言之,一旦调用lock方法时指定了leaseTime参数值,则该锁到期后即会自动释放。Redisson的WatchDog看门狗不会对该锁进行自动续期

c++ - CMake 链接错误 pthread:启用多线程以使用 std::thread:不允许操作

我有一个类似的错误C++Threads,std::system_error-operationnotpermitted?我正在使用完全相同的源代码并使用进行编译g++../src/main.cpp-pthread-std=c++11工作没有任何问题。因为我想在一个更大的项目中使用线程,所以我必须在CMake中使用线程。搜索解决方案后,我发现了几个代码,例如:cmake_minimum_required(VERSION2.6)project(Test)add_definitions("-std=c++11")find_package(Threads)add_executable(main

c++ - 从 C++ 调用 dll 函数

我在一个dll中有一个函数,我想从我的C++应用程序中调用它。该dll也是用C++制作的,并且有一个def文件,它显示了dll中存在的函数。我正在使用visualstudio2010,我通过在链接器“附加库目录”中添加dll的目录,然后在链接器的“输入”中添加DLLname.lib,将其配置为使用dll文件。现在dll中的所有命名空间都可用,但是我需要的函数不可用,因为它们不在任何命名空间下。我该如何访问这些功能?这些函数在dll中声明为这样#include"stdafx.h"#include__declspec(dllexport)intsomefunction(){......re

c++ - 如何将 DLL 反转为 C++ 代码?

我知道将dll逆向为C++代码是不可能的,所以我想从中收集尽可能多的细节。这不是我的dll,所以我当然没有源代码。我应该使用哪个程序? 最佳答案 好吧,如果你技术娴熟,你可以反汇编DLL并了解它的所有功能。这会花费大量时间,但如果您这样做了,您可以手动将其还原回源。否则,您可以先使用DependencyWalker之类的工具来获取它所依赖的DLL和函数,以及它导出的函数。从那里您可以找到您感兴趣的函数,并使用像IDA这样的反汇编程序来查看它们的作用。 关于c++-如何将DLL反转为C++