草庐IT

DLL_THREAD_ATTACH

全部标签

c++ - 'std::thread::thread': 没有重载函数需要 7 个参数

我正在使用visualstudio2012和上面的错误弹出窗口。我的代码是正确的,但似乎编译器仅限于7个参数。如果我想传递7个参数,我该怎么办?我可以传递一个结构,但如果可能的话最好不要更改我的代码。 最佳答案 VS2012不完全支持可变参数模板。另请参阅此博文:http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx您可以通过定义此宏_VARIADIC_MAX将参数的最大数量设置为10。所以只需执行类似#define_VARIADIC_MAX10的操作即可。对于

c++ - 使用 dll 库时,是否需要包含用于构建 dll 的所有头文件?

我已经从C++源代码构建了一个共享库(.dll)。现在,当我想在另一个程序中使用这个库时,我是否需要包含最初用于构建库的所有头文件,或者只包含属于我的(新)程序中使用过的函数的头文件够了吗?库中有许多函数在我的新程序中没有直接使用,但是,不用说,它们都被程序中的函数使用了。(所以它们也在程序中间接使用,如果不需要包含它们才奇怪。) 最佳答案 头文件并没有什么神奇之处,它们只是确保您的.cpp文件可以访问它需要的所有声明和定义的便捷方式。因此,仅在每个文件中包含您实际需要的内容(1)。以上是指在您的文件中放置#include语句——仅

c++ - 过程入口点无法位于动态链接库 Core.dll 中

我正在将我的项目转换为使用DLL,并试图拆分我的Singleton类以避免使用模板。我的类LudoMemory,最初继承自Singleton。我现在正在尝试为其提供销毁和创建自身的功能,并让我的主引擎不依赖于Singleton。我写了一个像这样的简单销毁方法:LudoMemory*memory_Singleton=NULL;voidLudoMemory::Destroy(){LUDO_SAFE_DELETE(m_Singleton)}在运行程序时(没有编译器错误)我收到这个错误:Theprocedureentrypoint?Destroy@LudoMemory@@SAXXZcouldn

c++ - 为什么我肯定会输入 "procedure entry point could not be located in dll"却不能?

我有一个非常模糊的问题,但我希望有人能帮忙解决。我正在修改一个C++项目,昨天它还在工作,但今天就不行了。我很确定我没有改变任何东西,但为了完全确定我再次从SVN中检查了项目,我什至恢复到以前的系统还原点(因为这是一台工作计算机,它有时会secret安装更新等。).编译成功后,程序可以启动,但是我和它交互后,却报错:过程入口点?methodName@className@@UAEXXZ无法位于动态链接库libName.dll中。我在网上搜索过,但大多数人的问题似乎是由使用的DLL的旧版本引起的。我搜索了我的电脑,没有旧版本。如果我删除正确的版本,应用程序不会启动。如果我随后重新编译该项目

c# - 是否可以在非托管 VC++ 应用程序中使用使用 C# 创建的 DLL?

我有一个用C#编写的DLL,我想将它用于C#应用程序和用非托管VC++编写的应用程序。这可能吗? 最佳答案 为了补充此处的其他答案,这里是描述您的情况的MS支持文章。http://support.microsoft.com/kb/828736 关于c#-是否可以在非托管VC++应用程序中使用使用C#创建的DLL?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2873714/

c++ - DllMain Attach 和 Detach 过程中的使用限制

我的一位同事在DllMainDetach过程中遇到了麻烦。他的错误似乎并非在所有情况下都出现,但相当频繁。在尝试帮助他时,我想起了一些DllMainAttach和Detach过程中的使用限制,但我不确定我是否记得清楚,因为这是2年前的技术讨论,而且它不是我在处理那些终止问题。也就是说,我有点记得我们应该:避免使用new和delete运算符,更喜欢HGLOBAL内存分配避免在此处处理线程终止。如果我错了,你能纠正我吗?如果有的话,请解释一下,或者指出一篇可以解决这些问题的技术文章。 最佳答案 避免调用LoadLibrary和相关API

C# Dll 导入失败 : "The application has failed to start because its side-by-side configuration is incorrect"

我有一个c#.net4应用程序,使用vs2010。我正在尝试导入一个c++dll(基于vs2005)。[DllImport("Card.dll")]我得到了失败:UnabletoloadDLL'Card.dll':Theapplicationhasfailedtostartbecauseitsside-by-sideconfigurationisincorrect.Pleaseseetheapplicationeventlogorusethecommand-linesxstrace.exetoolformoredetail.(ExceptionfromHRESULT:0x800736B

c++ - boost .asio : can I do async_read and async_write simultaneously from one thread?

我读到不建议对来自不同线程的套接字进行多项操作。但是,如果我从同一个线程socket.async_read和下一个socket.async_write调用(不等待前一个完成)怎么办?当其中一个操作完成时,我可以期望正确的回调会运行吗? 最佳答案 我发现是的,您可以在同一个套接字上有一个挂起的async_read和一个挂起的async_write而不会出现问题。当您调用io_service::run()方法时,回调将按预期完成。在同一个套接字上发出多个async_reads,或在同一个套接字上发出多个async_writes,可能会导

c++ - 无法跨 DLL 传递 std::wstring

我在VisualStudio2010中建立了一个项目来针对现有的MFCDLL编写单元测试。我正在使用单header单元测试框架,并链接到单元测试项目中的MFCDLL库包装器。我正在尝试构建一个采用std::wstring的类在它的构造函数中。这是我的测试结果:TEST_CASE("MyProject/MyTest","Dothetest."){MockDbServicemockDbService;Foobarfoo(L"{F00DFACE-FEED-DEAD-BEEF-C0FFEEDECADE}",mockDbService);foo.loadObject();REQUIRE(mock

C++ std::thread 成员函数

我正在尝试编写一个命令行服务器,该服务器将从串行端口接收信息、解析信息并将其记录在内部对象中。然后根据客户端的请求,服务器将返回请求的信息。我想做的是将接收器和解析器部分放在一个单独的线程中,以便让服务器同时运行,而不干扰数据收集。#include#includeclassexampleClass{std::thread*processThread;publicvoidcompleteProcess(){while(1){processStep1();if(verification()){processStep2()}}};voidprocessStep1(){...};voidpro