标签: dll

DLL中全局变量使用的限制(适用于Windows)

首先,我知道全局变量是邪恶的:)然而,有合法的情况,为什么我需要使用一个.

我知道在DllMain中可以执行的内容有非常严格的限制(没有LoadLibraries,没有COM初始化等等).

我知道全局变量在DllMain DLL_PROCESS_ATTACH之前初始化.

全局变量初始化时是否有相同的限制?

我发现微软文章:http://msdn.microsoft.com/en-us/library/988ye33t 但是,它没有任何与限制相关的细节.

我还看到了另一个Stackoverflow问题:在DLL中声明的全局变量会发生什么? 这里有一段摘录"在DllMain中有些东西是被禁止的.在构造函数中也可能禁止这些东西."

但是,看起来评论员不确定这些限制是否确实存在.

我希望有关此主题的任何信息.

c++ windows dll

0
推荐指数
1
解决办法
2082
查看次数

调试时找不到msvcr90d.dll

有时微软会让我感到头晕目眩.当我尝试调试我的项目时,VS会抛出一个消息框,显示以下错误:找不到msvcr90d.dll,重新启动软件可能会解决此错误.但是在结果窗口中,在加载simbols时,会显示以下行:

'GLFW_Window.exe': loaded 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\msvcr90d.dll', Loaded symbols.
Run Code Online (Sandbox Code Playgroud)

如果我转到此文件夹,DLL实际上存在.此外,我已尝试下载已正常工作但仍然失败的相同项目的先前版本.卸载可以删除这个dll吗?(这不是一台干净的机器,而是我的个人机器).

顺便说一句,如果我手动将这个文件夹的DLL复制到我的项目中,我会得到一个关于make一个清单的奇怪错误.

你们有人能帮助我吗?提前致谢

c++ dll visual-studio-2008

0
推荐指数
1
解决办法
359
查看次数

使用DLL中的函数而不加载它?

我正在看一些c ++/c代码,开源的ovaldi项目.我看到它们在发行版中包含pcre.dll,并在代码中调用该库中的函数; 但他们永远不会加载DLL; 它们只包含pcre.h头文件,似乎可以访问这些函数.他们真的只是用静态库构建并在发生意外时分发pcre.dll,还是有办法做到这一点?

c c++ dll linker pcre

0
推荐指数
1
解决办法
297
查看次数

C#中的dll问题

您好我想用一些函数创建一个dll.对于初学者,我试图做一些简单的例子来测试.我正在创建一个新的类库,例如下面的代码.当我构建它(没有错误)并创建一个dll文件时,我尝试在我的其他项目中使用它

[DllImport("nllibrary.dll")]  
 public static extern long Add(long i, long j);
Run Code Online (Sandbox Code Playgroud)

我可以编译它,但当我尝试运行应用程序时,它给我错误"找不到入口点".当我用depends.exe查看这个dll时,它在dll中没有显示任何功能.我的dll有什么问题?

dll的代码:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  


namespace nlLibrary  
{  
    public class nlClass
    {  

        public static long Add(long i, long j)
        {
            return (i + j*2);
        }           
    }      
} 
Run Code Online (Sandbox Code Playgroud)

c# dll dllimport

0
推荐指数
1
解决办法
113
查看次数

如何在VC++ 2010中使用.dll文件启动进程

我试图学习如何在C++中使用DLL文件.根据我的研究,当我在我的代码中使用DisplayNotepad()时,这应该打开记事本.我正在尝试编译它,但我收到编译器错误,我知道事实上windows.h定义了ShellExecute,但它说找不到标识符.这是我的代码:

#include "stdafx.h"
#include <windows.h>
#include <iostream>
extern "C"
{
__declspec(dllexport) void DisplayNotepad()
 {
     ShellExecute(NULL, "open", "c:\\windows\\notepad.exe", NULL,NULL, SW_SHOW);
 }
}
Run Code Online (Sandbox Code Playgroud)

我的编译器给出了以下错误:错误C3861:'ShellExecute':找不到标识符.我这样做完全错了吗?感谢您的投入.

c++ dll file process

0
推荐指数
1
解决办法
1437
查看次数

如果未报告丢失DLL,如何调试System.DllNotFoundException?

我正在维护一个小型.NET应用程序,它在.NET shell中加载GeckoFX webview.它适用于绝大多数计算机,但在一台特定的64位Windows 7计算机上,它会报告以下异常:

Description:
 Stopped working

Problem signature:
 Problem Event Name:   CLR20r3
 Problem Signature 01: monoclecatdesktop.exe
 Problem Signature 02: 1.0.0.0
 Problem Signature 03: 4db67550
 Problem Signature 04: Skybound.Gecko
 Problem Signature 05: 1.9.1.0
 Problem Signature 06: 4db625ff
 Problem Signature 07: 54
 Problem Signature 08: 87
 Problem Signature 09: System.DllNotFoundException
 OS Version:   6.1.7600.2.0.0.768.3
 Locale ID:    4105
Run Code Online (Sandbox Code Playgroud)

我尝试使用Dependency Walker找到丢失的DLL,但没有任何东西跳出来.我是Windows编程的新手,所以我不知道从哪里开始调试.任何建议表示赞赏!

.net windows dll dllnotfoundexception

0
推荐指数
1
解决办法
3099
查看次数

WinL 32位上的LoadLibrary失败,在Win XP 32位上成功

我正在尝试将第三方dll(即我没有源代码)加载到我的应用程序中.在Windows XP 32位系统上,它加载正常,但在Windows 7系统上无法加载,引用来自GetLastError()的错误#998

我使用dll导出查看器来查看dll的导入和导出符号,并观察到导入表中列出的除3个dll之外的所有dll都来自此第三方供应商.那些没有的是:
kernel32.dll
mingwm10.dll
msvcrt.dll

这是我用来导入的代码:

SetDllDirectory(L"c:\\dlls");
HMODULE tempDLL = LoadLibrary(L"mydll.dll");
DWORD err = GetLastError();
Run Code Online (Sandbox Code Playgroud)

有关如何进行调试的任何提示,好吗?

编辑:感谢大家的回答,这是我到目前为止所发现的:
a)应用工具包包没有证明是有用的(见下文)
b)同事A可以获得加载他的胜利的DLL 7机器和同事B不能,所以它是零星的东西
c)作为管理员运行没有改变任何东西

c++ dll loadlibrary

0
推荐指数
1
解决办法
2706
查看次数

JDK 1.3中的Java Native Access

我正在尝试将JNA集成到JDK 1.3应用程序中.JNA页面有以下主题:

1.4或更高版本的JVM支持(早期的VM可以使用存根NIO支持)

我已经设法通过删除所有java.nio引用将JNA源代码移植到JDK 1.3.我不需要例如java.nio.Buffer.

但是,JNA DLL被编译为使用Java NIO类型并且抱怨:

JNA:加载核心ID时出现问题:java.nio.Buffer

我需要做些什么才能使JNA在JDK 1.3中运行?这"可能与存根NIO支持有关"是什么意思?

我唯一的选择是从C源代码中存根NIO并重新编译DLL吗?因为我根本不擅长C编程,所以我拼命想避免它.

是否有其他方法在Java中调用本机DLL(不是JNI,称为DLL是封闭源和JNI不兼容).

java dll nio jna

0
推荐指数
1
解决办法
552
查看次数

aspx无法找到代码

我能够使用Visual Studio IDE执行我的应用程序,但是当我创建一个发布包并将其放在Web服务器上时,它似乎无法找到后面的代码.但是,如果我从根目录复制bin文件夹(具有dll文件)并将其放入"root/reports"目录,一切正常.reports目录包含所有.aspx网页文件.是什么导致了这个问题,我该怎么做才能正确解决这个问题?

.net c# asp.net iis dll

0
推荐指数
1
解决办法
1064
查看次数

缺少ASP.NET中的"System.web"引用

在我的项目中,我遇到了这个错误:

错误1命名空间"System.Web"中不存在类型或命名空间名称"UI"(您是否缺少程序集引用?)

所以,基本上我试图添加"system.web"作为我的项目的引用,但我的.NET框架中没有这样的东西.

我该如何安装"system.web"?

c# asp.net dll

0
推荐指数
1
解决办法
8730
查看次数

标签 统计

dll ×10

c++ ×5

c# ×3

.net ×2

asp.net ×2

windows ×2

c ×1

dllimport ×1

dllnotfoundexception ×1

file ×1

iis ×1

java ×1

jna ×1

linker ×1

loadlibrary ×1

nio ×1

pcre ×1

process ×1

visual-studio-2008 ×1