我从未明白ABI是什么.请不要指向维基百科的文章.如果我能理解它,我就不会在这里张贴这么长的帖子.
这是我对不同界面的看法:
电视遥控器是用户和电视之间的接口.它是一个现有实体,但本身无用(不提供任何功能).遥控器上每个按钮的所有功能都在电视机中实现.
接口:它是间"现有实体"层
functionality和consumer的该功能.接口本身不起作用.它只是调用后面的功能.现在取决于用户是谁,有不同类型的接口.
命令行界面(CLI)命令是现有实体,消费者是用户和功能所在.
functionality:我的软件功能解决了我们描述这个界面的一些目的.
existing entities:命令
consumer:用户图形用户界面(GUI)窗口,按钮等是现有实体,消费者再次是用户和功能所在.
functionality:我的软件功能解决了我们描述这个界面的一些问题.
existing entities:窗口,按钮等..
consumer:用户应用程序编程接口(API)函数(或更正确的)接口(在基于接口的编程中)是现有实体,这里的消费者是另一个程序而不是用户,并且该层后面的功能也是如此.
functionality:我的软件功能解决了我们描述这个界面的一些问题.
existing entities:函数,接口(函数数组).
consumer:另一个程序/应用程序应用程序二进制接口(ABI)这是我的问题开始的地方.
functionality:???
existing entities:???
consumer:???
ABI涵盖了诸如此类的详细信息
- 数据类型,大小和对齐方式;
- 调用约定,它控制函数参数的传递方式并返回检索的值;
- 系统调用号码以及应用程序应如何向操作系统进行系统调用;
其他ABI标准化细节,如
- C++名称错误,
- 异常传播,和
- 在同一平台上调用编译器之间的约定,但不需要跨平台兼容性.
谁需要这些细节?请不要说操作系统.我知道汇编编程.我知道链接和加载是如何工作的.我确切地知道里面发生了什么.
为什么C++名称输入?我以为我们正在谈二进制.语言为什么会进来?
无论如何,我已经下载了[PDF] System V Application Binary Interface Edition 4.1(1997-03-18),看看它究竟包含了什么.好吧,大部分都没有任何意义.
为什么它包含两章(第4和第5章)来描述ELF文件格式?实际上,这些是该规范中仅有的两个重要章节.其余章节是"处理器特定的".无论如何,我认为这是一个完全不同的话题.请不要说ELF文件格式规范是 ABI.根据定义,它不符合接口的条件.
我知道,因为我们谈论的水平很低,所以必须非常具体.但我不确定它是如何"指令集架构(ISA)"具体的?
我在哪里可以找到Microsoft Windows的ABI?
所以,这些是困扰我的主要问题.
请原谅我,如果我只是公然缺少某些东西,但我正在尝试从结构和c转换为类和c ++.
继承人我正在做的事情:
A有一个"Checkers"类和一个"Board"类.
现在使用结构,我可以通过执行以下操作在我的"board.cpp"文件中创建一个Checkers数组:
Checker checkers[2][12]
(每边0和1,每件0-11)
问题是,对于类,执行相同的声明将尝试调用"Checkers"构造函数.我收到此错误:"错误:没有匹配函数调用'Checker :: Checker()'"
我的Checker构造函数处理初始化单个部分(如果它在0或1侧,0-11部分),所以我不打算在那里调用它.
有没有办法避免这种情况,或者我是否采取了错误的方式?谢谢.
编辑:或者我可能只是设计构造函数来初始化一个检查器数组?你甚至可以将变量声明为类/对象的数据类型吗?
尝试在javascript代码中使用rails变量时遇到问题.
例如,我可以使用参数定义link_to_remote
:complete => "alert('my_var');"
如果my_var = "I'm testing.",则javascript代码将因单引号过早关闭代码而中断.如果我尝试使用escape_javascript(my_var)以便引用该引用\',则似乎无法解决问题.
我注意到,当你尝试alert('I\'m testing');有一个问题,但如果你这样做alert('I\\'m testing'),它的工作原理.由于escape_javascript只转'进\',而不是\\',是否有人对如何处理这一建议?
谢谢!埃里克
我正在使用CodeIgniter创建一个电子商务网站.
我该如何获取查询字符串?
我正在使用Saferpay支付网关.网关响应将如下所示:
http://www.test.com/registration/success/?DATA=<IDP+MSGTYPE%3D"PayConfirm"+KEYID%3D"1-0"+ID%3D"KI2WSWAn5UG3vAQv80AdAbpplvnb"+TOKEN%3D"(unused)"+VTVERIFY%3D"(obsolete)"+IP%3D" 123.25.37.43"+IPCOUNTRY%3D"IN"+AMOUNT%3D"832200"+CURRENCY%3D"CHF"+PROVIDERID%3D"90"+PROVIDERNAME%3D"Saferpay+Test+Card"+ACCOUNTID%3D"99867-94913159"+ECI%3D"2"+CCCOUNTRY%3D"XX"%2F>&SIGNATURE=bc8e253e2a8c9ee0271fc45daca05eecc43139be6e7d486f0d6f68a356865457a3afad86102a4d49cf2f6a33a8fc6513812e9bff23371432feace0580f55046c
Run Code Online (Sandbox Code Playgroud)
要处理响应,我需要获取查询字符串数据.
对不起,我没有清楚地解释这个问题.我在收到付款后从付款网站获得回复时收到"找不到页面"错误.
我曾尝试与启用uri_protocol = 'PATH_INFO',并enable_query_strings = 'TRUE'在config.php.谷歌搜索我发现如果我使用htaccess重写这将无法正常工作.
我已经尝试更改配置条目,但它不起作用.
有点奇怪的是,当我想通过pytz获得欧洲/巴黎的时区时,它会让我进入PMT时区而不是GMT + 1,这似乎适用于欧洲/柏林.
不清楚 ?那么看看这个片段:
#!/usr/bin/python
import os
import datetime
from pytz.tzfile import build_tzinfo
base='/usr/share/zoneinfo/'
tz = build_tzinfo('Europe/Paris',
open(os.path.join(base,'Europe','Paris'), 'rb'))
fmt = '%Y-%m-%d %H:%M:%S %Z%z'
print datetime.datetime(2009, 01, 30, 9, 00, tzinfo=tz).strftime(fmt)
tz = build_tzinfo('Europe/Berlin',
open(os.path.join(base,'Europe','Berlin'), 'rb'))
print datetime.datetime(2009, 01, 30, 9, 00, tzinfo=tz).strftime(fmt)
Run Code Online (Sandbox Code Playgroud)
输出是:
2009-01-30 09:00:00 PMT+0009
2009-01-30 09:00:00 CET+0100
Run Code Online (Sandbox Code Playgroud)
当真正的巴黎应该也是CET + 1.
从datetime.datetime.now(tz)构造无论如何都能得到正确的结果.
有人有想法吗?
我想编译一个使用用户提供的凭据连接到远程数据库的设置,然后使用.sql脚本安装几个db组件.
可以使用Inno Setup吗?
更多细节:
我想要一个自定义表单,要求用户输入数据库地址和凭据,然后运行一个命令,该命令将执行将更新远程数据库服务器的sql脚本.
如果更新成功 - 请成功完成安装.
这是一个相当笼统的问题 - 我有很多自定义设置应该连接到不同的服务器/运行不同的脚本 - 我们的想法是构建一个提供此功能的通用表单.
BOOL success;
NSFileManager *fileManager = [[NSFileManager defaultManager]autorelease];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:@"DB"];
success = [fileManager fileExistsAtPath:documentDBFolderPath];
if (success){
return;
}else{
NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath]
stringByAppendingPathComponent:@"DB"];
[fileManager createDirectoryAtPath: documentDBFolderPath attributes:nil];
[fileManager copyItemAtPath:resourceDBFolderPath toPath:documentDBFolderPath
error:&error];
}
}
Run Code Online (Sandbox Code Playgroud)
像这样.
Resources/DB/words.csv => DB folder copy => Document/DB/words.csv
我想在Resources文件夹中复制DB子目录.我认为这个来源很好.但该源创建文件夹,不会复制Resources文件夹中DB文件夹中的文件.
我真的想复制Resources文件夹中DB文件夹中的文件.请帮我.
我正在创建一个"Q&A"网站.在问题页面上可以看到它的所有答案(带分页).我还需要从其他页面直接回答(在页面中).我已经尝试实现命名锚点但无法直接到页面部分.
答案的get_absolute_url()以下列形式返回url:
www.example.com/question-id/question-slug?page=no#aID <!-- EDITED -->
Run Code Online (Sandbox Code Playgroud)
一个示例网址:
www.example.com/question-10/what-is-this?page=2#a20 <!-- EDITED -->
Run Code Online (Sandbox Code Playgroud)
并在HTML中:
{% autopaginate answers 10 %}
{% for answer in answers %}
<div>
<a name="a{{answer.id}}">Answer</a> <!-- EDITED -->
{# answer body goes here#}
</div>
{% endfor %}
{% paginate %}
Run Code Online (Sandbox Code Playgroud)
它会重定向到正确的页面,但不会重定向到正确的页面部分.
编辑:Result! When clicked, After going to the page section, it bounces to the bottom of the page
在Boost.Asio套接字中有一个函数赋值,但我正在寻找类似的东西
要么
我知道这个解决方案,但它涉及复制套接字(即创建新的描述符而不是释放一个).
有谁知道怎么做?
编辑:没有这样的功能,为Boost打开了门票.Asio https://svn.boost.org/trac/boost/ticket/3900
这可能听起来有点微不足道,但实际上非常令人沮丧:任何人都可以解释我:
[~:user$]expr 3 + 2
6
[~:user$]expr 3 / 2
1
[~:user$]expr 3 * 2
expr: syntax error
Run Code Online (Sandbox Code Playgroud)
当手册页expr精确指定ARG1*ARG2是两者的算术乘积时.
谢谢,
c++ ×2
abi ×1
api ×1
binary ×1
boost ×1
boost-asio ×1
class ×1
codeigniter ×1
constructor ×1
django ×1
escaping ×1
expression ×1
frameworks ×1
html ×1
inno-setup ×1
iphone ×1
javascript ×1
linux ×1
objective-c ×1
php ×1
python ×1
quotes ×1
shell ×1
sockets ×1
sql ×1
timezone ×1