小编smw*_*dia的帖子

什么是"运行时"?

我听说过"C Runtime","Visual C++ 2008 Runtime",".NET公共语言运行时"等等.

  • 究竟什么是" 运行时 "?
  • 它是什么做的?
  • 它如何与我的代码交互?或者更确切地说,我的代码如何由它控制?

在Linux上编写汇编语言时,我可以使用INT指令进行系统调用.那么,运行时只是一堆预制函数将低级函数包装成更抽象的高级函数吗?但这不是更像是库的定义,而不是运行时的定义吗?

"运行时"和" 运行时库 "有两个不同的东西吗?

添加1

这些天,我想也许Runtime与所谓的虚拟机有一些共同点,比如JVM.这是导致这种想法的引文:

这个编译过程非常复杂,可以分解为几个抽象层,这些过程通常涉及三个转换器:编译器,虚拟机实现和汇编器.--- 计算系统的要素(介绍,道路到硬件土地)

添加2

该书C专家编程:深度C的秘密.第6章运行时数据结构是对此问题的有用参考.

terminology

347
推荐指数
8
解决办法
12万
查看次数

如果JWT被盗怎么办?

我正在尝试使用JWT为我的RESTful API实现无状态身份验证.

AFAIK,JWT基本上是在REST调用期间作为HTTP头传递的加密字符串.

但是,如果有一个窃听者看到了请求并窃取了令牌呢?那么他能用我的身份伪造请求吗?

实际上,这种关注适用于所有基于令牌的身份验证.

怎么预防?像HTTPS这样的安全渠道?

authentication access-token jwt

170
推荐指数
5
解决办法
3万
查看次数

如何在SQL Server连接字符串中指定端口号?

我在SQL Server Management Studio中使用以下连接字符串.它无法连接:

mycomputer.test.xxx.com:1234\myInstance1

但是下面的一个是好的:

mycomputer.test.xxx.com\myInstance1

那么如何在连接字符串中指定端口号?

sql-server

131
推荐指数
2
解决办法
20万
查看次数

IIS7.5中"PUT"方法的"405方法不允许"

我使用WebClienttype将*.cab文件上传到我的服务器.在服务器端,我使用PUT方法为*.cab文件注册了一个HTTP处理程序,如下所示:

 <add name="ResultHandler" path="*.cab" verb="PUT" type="FileUploadApplication.ResultHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
Run Code Online (Sandbox Code Playgroud)

但我总是得到"405方法不允许"的错误.回复称允许的方法如下:

Headers = {Allow: GET, HEAD, OPTIONS, TRACE
Content-Length: 1293
Content-Type: text/html
Date: Fri, 27 May 2011 02:08:18 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET}
Run Code Online (Sandbox Code Playgroud)

即使我在我的Web应用程序的IIS请求筛选中明确允许PUT方法,仍然会发生相同的错误.

我怀疑这是一个与IIS相关的问题.我希望有人能为我揭开这一点.

iis iis-7

104
推荐指数
13
解决办法
12万
查看次数

为什么C#结构不能被继承?

我正在通过C#由Jeffery Richter阅读CLR,它说结构是一种值类型,不能继承.

有任何技术或哲学原因吗?

.net c#

85
推荐指数
3
解决办法
6万
查看次数

如何安装MinGW-w64和MSYS2?

我正在尝试构建一些开源库.我需要包管理系统来轻松下载依赖项.起初我正在使用MinGW+MSYS.但包含的包裹有限.有人告诉我使用MinGW-w64 + MSYS2.

mingw-w64-install这里下载了.运行时,它会报告以下错误.怎么解决?

在此输入图像描述

顺便说一句,从MinGW-w64下载页面,我看到了很多下载链接.甚至Cygwin也被列入名单.怎么CygwinMinGW-w64相关?

在此输入图像描述

我目前的理解是,到目前为止MinGW+MSYS,MSYS只是MinGW的一个很好的插件,而在MinGW-w64 + MSYS2,MSYS2是独立的,MinGW-W64只是一组可以使用的库.就像Cygwin可以下载许多不同的包装一样.

cygwin mingw msys mingw-w64 msys2

77
推荐指数
2
解决办法
9万
查看次数

导入库如何工作?细节?

我知道这对极客来说似乎很基础.但我想说清楚.

当我想使用Win32 DLL时,通常我只需要调用像LoadLibrary()和GetProcAdderss()这样的API.但最近,我正在使用DirectX9进行开发,我需要添加d3d9.lib,d3dx9.lib等文件.

我听说LIB用于静态链接,DLL用于动态链接.

所以我目前的理解是LIB包含方法的实现,并在链接时静态链接作为最终EXE文件的一部分.虽然DLL在运行时动态加载,但不是最终EXE文件的一部分.

但有时候,DLL文件会附带一些LIB 文件,因此:

  • 这些LIB文件是什么?
  • 他们如何实现他们的意图?
  • 有没有工具可以让我检查这些LIB文件的内部?

更新1

检查维基百科后,我记得这些LIB文件称为导入库.但我想知道它如何与我的主应用程序和动态加载的DLL一起工作.

更新2

正如RBerteig所说,LIB文件中存在一些与DLL一起出现的存根代码.所以调用序列应该是这样的:

我的主要应用 - > LIB中的stub - >真正的目标DLL

那么这些LIB应包含哪些信息?我能想到以下几点:

  • LIB文件应包含相应DLL的完整路径; 因此DLL可以由运行时加载.
  • 每个DLL导出方法的入口点的相对地址(或文件偏移量?)应该在存根中编码; 因此可以进行正确的跳转/方法调用.

我对吗?还有什么吗?

顺便说一句:有没有可以检查导入库的工具?如果我能看到它,就不会再有疑惑了.

c c++ windows visual-c++

76
推荐指数
2
解决办法
3万
查看次数

什么是IIS 7中的"传递身份验证"?

在IIS 7中,在我为我的网站指定物理路径并单击"测试设置"按钮后,我收到以下警告:

服务器配置为使用内置帐户的传递身份验证来访问指定的物理路径.但是,IIS管理器无法验证内置帐户是否具有访问权限.确保应用程序池标识具有对物理路径的读访问权限.如果此服务器已加入域,并且应用程序池标识为NetworkService或LocalSystem,请验证该服务器是否<domain>\<computer_name>$具有对物理路径的读访问权限.然后再次测试这些设置.

那么什么是传递身份验证?从字面上看,它应该通过一些A通过一些B?那么A和B是什么?

另外,我实际上使用的是内置的ApplicationPoolIdentity.为什么IIS无法验证此帐户是否具有对物理路径的适当访问权限?为什么我需要自己验证?

iis

75
推荐指数
1
解决办法
18万
查看次数

android资源和资源ID之间的映射如何工作?

Android的神奇之处在于只通过R.id.XXX找到合适的资源.

AFAIK,资源被编译成二进制格式,那么这个映射逻辑如何在底层工作呢?

也许它的工作原理如下:

例如,在layout1.xml中,我们得到:

<Button android:id="@+id/button1" >
Run Code Online (Sandbox Code Playgroud)

和AAPT将在R.java中生成:

public static final int button1=0x7f05000b;
Run Code Online (Sandbox Code Playgroud)

当生成*.apk时,@ + id/button1将替换为"0x7f05000b".

因此,当我们打电话时:

findViewById(R.id.button1);
Run Code Online (Sandbox Code Playgroud)

我们基本上仍然根据ID进行搜索,尽管ID是一个像0x7f05000b的数字.

谢谢!

我真正想知道的是,如何将资源id整数解析为资源内容?换句话说,Android运行时如何以资源ID作为唯一线索来定位资源内容?

例如,如何找到具有资源ID的可绘制图片?或者如何找到具有资源ID的字符串值?

android android-resources

71
推荐指数
3
解决办法
2万
查看次数

我应该在80以外的端口上使用WebSocket吗?

我应该在非80端口上使用WebSocket吗?它是否会毁掉使用现有Web/HTTP基础架构的整个目的?我认为它不再符合非80端口上的Web Socket 名称.

如果我在其他端口上使用WebSocket,为什么不直接使用TCP呢?或者WebSocket协议本身有什么特别的好处吗?

由于当前的WebSocket握手是HTTP UPGRADE请求的形式,这是否意味着我必须在端口上启用HTTP协议,以便可以完成WebSocket握手?

websocket spring-websocket

56
推荐指数
2
解决办法
8万
查看次数