草庐IT

AppInit_DLL

全部标签

c# - 从具有 View 和数据库的 Windows 8.1/Windows Phone 8.1 应用程序创建一个 dll

我正在创建一个WindowsPhone8.1应用程序,它应该充当其他WindowsPhone8.1应用程序的库。在我的新应用程序中,我可以将Library项目添加到解决方案中,因此它可以作为一种外部库运行,这可以满足我的要求。但是,我想知道是否有某种方法可以将我的WPLibrary应用程序导出到,例如,我可以添加作为对我的新应用程序的引用的.dll。有没有其他方法可以做到这一点?值得一提的是,我的图书馆应用程序将具有View甚至数据库,而不仅仅是处理来自主应用程序的数据的方法。 最佳答案 因为它是Windows8.1/Windows

c++ - 从 dll 返回多个字符串

我们正在讨论什么是从一个dll函数返回多个字符串的好方法。目前我们有8个字符串,但还会有更多。为简单起见,我现在认为所有字符串的长度都相等。extern"C"intDLLNAME__stdcallGetResult(TestResults*testResults);在哪里structTestResults{intstringLengths;char*string1;char*string2;char*string3;char*string4;...};或第二个选项:wherestructTestResults{intstringLengths;charstring1[64];chars

windows - 每个应用程序配置文件 bindingRedirect 不适用于 Dll

我创建了一个简单的Win32应用程序,通过包含对版本6commctl32.dll的明显依赖来演示XP上的UXtheme然后我创建了一个简单的Win32dll,使用ISOLATION_AWARE_ENABLED构建它,并使用指定Comctl32.dll版本5和6的嵌入式list对其进行测试我使用这种方法成功地让exe和dll使用不同版本的comctl32.dll。exe使用5和dll版本6,反之亦然。然后,我重置应用程序和dll以具有comctlver5list依赖项。并引入了一个应用配置文件:现在,当我运行我的应用程序时,应用程序显然被重定向到commctlv6-使用启用的XPUXTh

windows - 从 C++ 源文件创建 Windows DLL

我有多个C++源文件,我想使用它们创建一个动态链接库。我在linux中用gcc-shared和ln看到了这种情况但是对于Windows,我想我必须修改源文件才能生成DLL。有没有一种方法可以使用提供的源文件生成DLL(类似于linux中的*.so的文件)。如果我错了,请纠正我,我认为*linux的dll也是如此。需要这个的原因是为了在WindowsPlatfrom中使用SWIG在python中调用C++函数。我卡在了要求我在Windows中生成一个dll的步骤。 最佳答案 具体方法取决于您使用的编译器,但该过程可能已记录在案。例如,

c# - 将 C DLL 包含到 C# 中时,对 PInvoke 函数的调用使堆栈不平衡

我已经编写了一个CDLL和一些C#代码来测试包含这个DLL并从中执行函数。我不太熟悉这个过程,每当从C#源代码调用我的DLL函数时,我都会收到PInvokeStackImbalance异常。代码如下(我已经注释掉了大部分代码以隔离这个问题):C#包含代码:usingSystem;usingSystem.Runtime.InteropServices;usingSystem.IO;namespaceTestConsoleGrids{classProgram{[DllImport("LibNonthreaded.dll",EntryPoint="process")]publicunsafe

windows - VB - 以隐式方式链接 DLL

我正在开发VB6图形界面,我需要隐式链接到DLL。这样做的动机来自于我的previousquestion.有问题的DLL使用静态TLS,__declspec(thread),当然,当使用LoadLibray显式链接DLL时,这会严重失败。我真的很想避免对DLL进行修改,所以有人知道如何欺骗VB6可执行文件隐式链接到特定的DLL吗? 最佳答案 为您的DLL创建一个IDL文件,在module中描述您导出的函数条款。使用MIDL编译器编译并从您的VB6项目(项目-引用)中引用生成的tlb文件。并删除所有DeclareFunction。tl

windows - 我可以在 ntdll.dll!_LdrpInitializeProcess 中设置断点吗?

在调试Windows进程时,有时尽早中断会很方便。初始调用堆栈如下所示:(例如,当您在DLL_PROCESS_ATTACH上的DllMain函数中设置断点时,您会得到这个)...ntdll.dll!_LdrpCallInitRoutine@16()+0x14bytesntdll.dll!_LdrpRunInitializeRoutines@4()+0x205bytes>ntdll.dll!_LdrpInitializeProcess@20()-0x96dbytesntdll.dll!__LdrpInitialize@12()+0x6269bytesntdll.dll!_KiUserAp

C++ 包装器 DLL 到静态 LIB

我有一些在我的项目中使用的静态编译库(.lib),这些库是用C++编写的,同时构建在Windows和Linux上。在我的项目的这些库的入口点,我只使用静态库套件中“主”库中的一两个函数,真的(但我确信这些函数调用套件中其他库中的许多其他函数).理想情况下,我希望拥有一套动态链接库(DLL),它们环绕静态库套件中的每个库;我读过/听说过在Windows(例如VisualStudio2005/2008/2010)上执行此操作的方法是“创建一个包装器DLL”,其中包含一些调用底层静态库函数的公开函数。如果有人能给我一些详细的分步说明,包括一些片段,说明如何在MSVisualStudio200

windows - native dll 中的序号和提示号有什么区别?

我想知道nativedll中的序号和提示值之间有什么区别吗?有人知道吗? 最佳答案 序数可以被认为是导出函数的替代(内部)名称(所有导出都有一个序数,有些只有序数a.k.a.NONAME)。它们在16位Windows中很常见,但现在不多了(如果不包括“字符串名称”,导入/导出表会更小)。它们对于加载程序的查找速度稍快,并且通常用于未记录的功能。缺点是它们可能在不同版本之间不稳定。hint被加载器用作进入dll导出表的快捷方式,如果提示偏移量与预期的函数名称不匹配,则使用正常搜索。看看AnIn-DepthLookintotheWin3

c++ - 加载 DLL 函数的更好方法?

我觉得有比在typedef中拥有数百个签名然后通过GetProcAddress加载指针更好的方法。据我所知,加载DLL函数时它是最简单的,但也很麻烦。有没有更简单的方法来加载DLL函数?具体是大量的Winapi和ToolHelp库函数?我知道您可以只“包含一个.lib”,但我觉得那样会导致不必要的膨胀;我也无法访问源代码(尽管JasonC提到可以从.dll转到.lib)。我正在寻找为此编写一个库。我觉得主要障碍是处理具有不同签名的函数;或者这正是为什么每个人都使用typedef而不是“一些奇特的循环”来加载他们的DLL函数的原因? 最佳答案