正如问题所说,我想从内存中的位置而不是文件加载DLL,类似于LoadLibrary(Ex).我不是WinAPI的专家,所以google了一下,发现这篇文章与MemoryModule库一起完全满足我的需求.
另一方面,信息很旧,图书馆也没有更新一段时间.所以我想知道是否有不同的,更新的和更好的方法来做到这一点.此外,如果有人使用了文章中提到的库,他们是否可以提供有关使用它时可能遇到的问题的见解?
对于好奇的,我正在探索加密应用程序的一些插件的概念,而不将解密的版本存储在磁盘上.
我的服务器上有我的脚本,因此我没有可用的UI交互,必须使用DLL而不是控制台应用程序.
如何从VBScript中调用C#DLL中的函数?
如何制作我的DLL COMVisible
?我需要注册吗?
我正在尝试做一些在常规MSVC中很容易做的事情,但在VC++ Express中不容易支持.
VC++ Express中没有资源编辑器.所以我在我的DLL项目中添加了一个名为version.rc的文件.该文件具有以下内容,该内容由资源编译器编译并添加到最终的DLL中.使用reshacker可以在DLL中查看此资源,但在Windows资源管理器中右键单击DLL时则不行.
我的RC文件中缺少什么来使其在右键单击时显示?
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "something Application"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "something"
VALUE "LegalCopyright", "Copyright (C) 2008 Somebody"
VALUE "OriginalFilename", "something.exe"
VALUE "ProductName", "something Application"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
Run Code Online (Sandbox Code Playgroud) c++ dll resources visual-c++-2008-express visual-studio-2008
我正在构建一个DLL,我们称之为mydll.dll,在其中我有时需要从webservice,myservice调用方法.mydll.dll是使用C#和.NET 3.5构建的.
为了消耗为MyService从MYDLL我添加了一个服务在Visual Studio 2008中,这或多或少与使用svcutil.exe的.这样做会创建一个我可以创建的类,并将端点和绑定配置添加到mydll app.config.
这里的问题是从未加载mydll app.config.相反,加载的是我使用mydll的程序的app.config或web.config .
我希望mydll能够进化,这就是为什么我将它的功能从我的系统的其他部分开始解耦.在这个演变过程中,它可能会增加更多的Web服务,它会调用手动复制粘贴方法来克服这个问题.
我已经研究了几种可能的攻击方法:
我不知道该走哪条路.选项3听起来很有希望,但事实证明这是很多工作,可能会引入一些错误,所以它无疑是值得的.我也不熟悉规范svcutil.exe以外的任何工具.
请为上述替代方案提供优缺点,提供实施其中任何方案的提示,或建议其他方法.
谢谢,
阿萨夫
是否有一些.dll文件列表可以在各种新安装的 Windows平台上使用(或者至少是最近的,如Win XP和Win 7)?我正在寻找一个类似于Windows 2000的列表 .
(我正在使用py2exe编译一个python应用程序,并且应用程序报告了使用已编译的应用程序进行潜在分发所需的dll,但遗憾的是它并没有告诉我默认情况下安装了哪些dll)
我有一个C++ Windows应用程序.我签署了我们的安装程序和我的可执行文件,但我目前没有签署我的DLL(例如zlib1.dll).签署这些并不是什么大不了的事,但有人可以解释一下这样做的好处吗?例如,如果所有依赖项都已签名,我的程序是否会与AV或防火墙软件有任何不同?用户会得到任何不同的警告吗?
好的,所以我已经阅读了几个关于这个主题的问题和文章,我觉得我理解基础知识,但我仍然遇到麻烦.
我有一个DLL导出一个具有std :: string作为成员的类.我的主程序包含也有字符串的类,它使用DLL.
如果我在VS2010中编译DLL,我会收到以下警告:
warning C4251: 'MyClass::data' : class 'std::basic_string<_Elem,_Traits,_Ax>' needs to have dll-interface to be used by clients of class 'MyClass'
Run Code Online (Sandbox Code Playgroud)
当我编译EXE时,我得到相同的警告,但没有错误,程序编译并运行.实际上,这是一个大项目,所以我得到了40个警告,我不太热衷于此.(作为侧面观察,使用VS2008编译时不会出现这些警告)
所以,我读到了这个警告,它引导我阅读这篇MS文章:http: //support.microsoft.com/default.aspx? scid = KB; EN-US; 168958,它告诉我如何从一个STL模板导出DLL来满足我得到的警告.
问题是,当我添加以下行以删除警告时:
EXPIMP_TEMPLATE template class DECLSPECIFIER std::allocator<char>;
EXPIMP_TEMPLATE template class DECLSPECIFIER std::basic_string< char, std::char_traits<char>, std::allocator<char> >;
Run Code Online (Sandbox Code Playgroud)
DLL编译没有警告,但是当我编译我的EXE时,链接器会抛出一个拟合:
2>SampleDLL.lib(SampleDLL.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in OtherClass.obj
2>SampleDLL.lib(SampleDLL.dll) : error LNK2005: "public: unsigned int __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::size(void)const " …
Run Code Online (Sandbox Code Playgroud) 首先 - 如果已经回答了一百次,我很抱歉!D'哦!
但我的搜索显然很糟糕,因为我没有运气回答这个基本问题:
资源如何存储在EXE/DLL中?作为UNICODE(UCS-2,Windows本机内部字符格式),还是使用资源块代码页的多字节字符?
我只是寻找一般答案或链接到详细信息,而不是将UNICODE字符串放入.rc字符串表的详细方法.谢谢!
我正在尝试使用Cython来编写我的项目.
我的计划是用C++编写.dll,然后通过Cython从Python调用它们.所以我可以拥有C++的高计算性能,同时保持Python开发的简单性.
随着我走得更远,我有点困惑.据我所知,Cython将python代码包装成C.由于C具有更好的计算性能,因此性能得到了提高.我对此是否正确?
如果我在上面,那么是否有必要在C++中编写.dll并从Python调用它以提高性能?
如果我编写python代码并将其包装到C中,然后从Python调用它,它是否比调用用C++编写的.dll更好?
在我的WPF应用程序中,我在启动时遇到以下异常:
A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
Additional information: Could not load file or assembly
'PresentationUI.Aero2, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
or one of its dependencies.
Run Code Online (Sandbox Code Playgroud)
编辑:使用融合日志,我得到比调用堆栈更有价值的信息:
LOG: DisplayName = PresentationUI.Aero2, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
(Fully-specified)
LOG: Appbase = file:///[...]/bin/Debug/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = EngideskLauncher.vshost.exe
Calling assembly : PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: This bind starts in default load context.
LOG: Using application configuration …
Run Code Online (Sandbox Code Playgroud) dll ×10
c++ ×5
c ×2
c# ×2
resources ×2
winapi ×2
.net ×1
app-config ×1
authenticode ×1
code-signing ×1
cython ×1
python ×1
rc ×1
stl ×1
svcutil.exe ×1
vbscript ×1
web-services ×1
windows ×1
wpf ×1