草庐IT

c++ - Visual Studio : Macro for checking configuration type (exe/dll)

是否有可用于检查visualstudio中当前配置类型的宏?根据当前设置,我想包含一个main或dllmain函数:#IFDEFCONFIGURATION_TYPE_EXEintmain(intargc,char**argv){...}#ELSEIFCONFIGURATION_TYPE_DLLBOOLAPIENTRYDllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){returnTRUE;}#ENDIF 最佳答案 如果是dll,那么_WINDLL将被定义为继

电脑提示ucrtbase.dll报错的窗口,有什么解决办法

ucrtbase.dll是电脑系统中的一个重要文件所以如果电脑缺了ucrtbase.dll文件就会导致电脑程序无法正常运行。如果你的电脑出现了这样的问题,那么来看这篇文章,教你解决ucrtbase.dll报错的解决办法。一.ucrtbased.dll缺失的原因通常,ucrtbased.dll缺失的原因有以下几种:1.文件如果被被误删或感染病毒可能导致ucrtbased.dll文件被删除或损坏,从而也就无法使电脑系统将文件找到。2.如果您的电脑硬件出现故障,如硬盘故障或内存故障,这可能会导致ucrtbased.dll文件文件丢失或损坏。3.ucrtbased.dll文件的版本和电脑系统不符,某些

c++ - 未找到 MSVCP90.dll?

在我的项目中,如果在发布中编译项目,它会询问我MSVCP90.dll。如果是debug,则不会...你遇到过这样的情况吗?你知道为什么需要这个.dll吗?或者什么配置让它成为理想?感谢任何建议.. 最佳答案 我认为您需要安装MicrosoftVisualC++2008RedistributablePackage你可以从here得到. 关于c++-未找到MSVCP90.dll?,我们在StackOverflow上找到一个类似的问题: https://stacko

c++ - C++ DLL def 文件中的重载函数

我正在编写一个C/C++DLL,并希望导出我在使用这样的.def文件之前完成的某些功能LIBRARY"MyLib"EXPORTSFooBar代码定义如下,例如:intFoo(inta);voidBar(intfoo);但是,如果我想像这样声明Foo()的重载方法怎么办:intFoo(inta,intb);由于def文件只有函数名,没有完整的原型(prototype),我看不出它如何处理重载的函数。您是否只使用一个条目,然后在将正确原型(prototype)化的函数指针传递给LoadLibrary()时指定您想要的重载版本?编辑:要清楚,这是在使用VisualStudio2005的Win

c++ - 从 DLL 导出 STL std::basic_string 模板时,出现 LNK2005 错误

好的,所以我已经阅读了几个关于这个主题的问题和文章,我觉得我了解基础知识,但我仍然遇到问题。我有一个DLL,它导出一个以std::string作为成员的类。我的主程序包含也有字符串的类,并且它使用DLL。如果我在VS2010中编译DLL,我会收到以下警告:warningC4251:'MyClass::data':class'std::basic_string'needstohavedll-interfacetobeusedbyclientsofclass'MyClass'当我编译EXE时,我得到了相同的警告,但没有错误,程序编译并运行。事实上,这是一个大项目,所以我收到了40条警告,我

c++ - 如何将对 ole32.dll 的调用重定向到我自己的代理 DLL?

我正在尝试检测对CoCreateInstance的所有调用在我开始的某些进程中(理想情况下,我也能够检测到子进程中的调用)。为了实现这一点,我使用Windows7上的MicrosoftVisualStudio2008创建了一个代理DLL,它转发标准ole32.dll库中除一个调用之外的所有调用,如多篇文章中所述,例如Intercepted:WindowsHackingviaDLLRedirection.生成的DLL看起来不错,但我无法让现有程序(我使用标准ActiveXControlTestContainer(tstcon32.exe)作为测试应用程序)获取我的代理DLL。根据Proc

c++ - 使用 gcc 编译 DLL

太棒了,我正在写一个脚本解释器。基本上,我希望一些类和函数存储在DLL中,但我希望DLL在链接到它的程序中查找函数,例如,programdll----------------------------------------------------sendcodetodll----->parsecode|vcodecontainsafunction,thatisn'tcontainedintheDLL|listoffunctionsinreturnvaluesentbacktotheparsingfunction我基本上想知道,如何使用gcc编译DLL?好吧,我正在使用gcc的Windo

c++ - 无需注册即可使用 DLL 中的 COM 对象

是否可以在C++非托管代码中使用DLL中的COM对象而无需注册? 最佳答案 是的,如果它内部不依赖于其他已注册的对象。您LoadLibraryDLL你GetProcAddress它的DllGetClassObject您调用DllGetClassObject获取IClassFactory指针,用于CLSID感兴趣您可以使用IClassFactory::CreateInstance并实例化coclass 关于c++-无需注册即可使用DLL中的COM对象,我们在StackOverflow上找到

c++ - 为什么 visual studio 会创建 .LIB 和 .DLL?

我有一个项目“Logger”,其中配置类型是.dll。“Logger”使用“libconfig”(一个开源配置解析器)。目前,我有一个单独的“libconfig”项目,它的配置类型是.lib我将“libconfig”添加到Logger的框架和引用设置中:链接库相关性=true使用库依赖inputs=false在Logger的链接器命令行中,我看到:/IMPLIB:"path\to\Logger.lib"我的问题是:为什么需要创建Logger.lib?我懂了/OUT="path\to\Logger.dll",但我正试图掌握visualstudio的构建过程。来自M$'sIMPLIBdoc

c# - 将 C++ DLL 添加到 C# 项目

我正在尝试使用来自LAME的lame_enc.dll文件在C#项目中,但添加这个东西似乎是不可能的。我不断收到错误消息,提示无法添加引用,请检查引用是否可访问、是否为有效程序集或COM组件。我没有C++经验,但我想使用该功能。现在我正在使用.NET框架中的Process来调用lame.exe并做一些事情,但我想知道是否还有其他方法。 最佳答案 您只能将托管程序集添加为对托管项目的引用。在这种情况下,我通常做的是将其添加为资源,而不是使用“复制本地”设置。这样,DLL就会绑定(bind)到您的项目并与您的项目一起部署。然后我使用Dll