我有点理解保留的重要性.但并非如此.我看了很多谷歌试图理解,但我仍然没有.
现在我在一些代码(我正在进行iPhone开发),我认为我应该使用它们但不完全知道如何.
有人能给我一个快速而好的例子,说明如何以及为何使用它们?
谢谢!
我正在解析日志并使用SQLAlchemy和Python将其插入MySQL或SQLite.现在我打开了与DB的连接,当我遍历每一行时,我在解析后插入它(这只是一个大表,现在对SQL不是很有经验).然后我在循环完成时关闭连接.汇总代码是:
log_table = schema.Table('log_table', metadata,
schema.Column('id', types.Integer, primary_key=True),
schema.Column('time', types.DateTime),
schema.Column('ip', types.String(length=15))
....
engine = create_engine(...)
metadata.bind = engine
connection = engine.connect()
....
for line in file_to_parse:
m = line_regex.match(line)
if m:
fields = m.groupdict()
pythonified = pythoninfy_log(fields) #Turn them into ints, datatimes, etc
if use_sql:
ins = log_table.insert(values=pythonified)
connection.execute(ins)
parsed += 1
Run Code Online (Sandbox Code Playgroud)
我的两个问题是:
如何使用多个证书对APK进行签名,以便在发布到Android电子市场时可以执行此操作:
版本1.0 =>使用证书A
版本2.0签名=>使用证书A和B
版本3.0签名=>使用证书B签名
Android Market确实给了我一些希望,但我不知道该怎么做,当我上传一个不同的签名证书时,它给了我这个消息:
"必须使用至少一个与之前版本相同的证书对apk进行签名."
动机:
我已经使用Android签名工具在市场上发布了一个应用程序,作为MotoDev Studio for Android的一部分.问题是它本身处理密钥,并且没有办法(记录)来获取密钥.我想更改它以使用我更有控制权的密钥库和证书,即使我不再使用MotoDev Studio也可以使用.此外,似乎MotoDev Studio将锁定您的新功能,如共享库.
更新2011年5月3日:
他们实际上非常快速和迅速地更新MotoDev Studio,但似乎我相信Google仍应为那些想要更改其应用程序证书的人提供解决方案.将应用程序更新为使用相同的证书,随着时间的推移创建新的证书,并可能创建一个新证书,以便您可以将应用程序的支持和分发交给其他人.
我正在使用Reflector查看有效方法的IL代码,我遇到了这个问题:
L_00a5: leave.s L_0103
Run Code Online (Sandbox Code Playgroud)
带后缀的指令.s
应该采用int8操作数,当然这也应该是Leave_S的情况.但是,0x0103是259,超过了int8的容量.该方法以某种方式工作,但当我用方法读取指令时,Mono.Reflection.Disassembler.GetInstructions
它检索
L_00a5: leave.s L_0003
Run Code Online (Sandbox Code Playgroud)
也就是说,3而不是259,因为它应该是一个int8.所以,我的问题是:原始指令(leave.s L_0103
)可能如何?我查看了ECMA文档(Partition III:CIL指令集),我找不到任何解释它的东西.
有任何想法吗?谢谢.
编辑#1:好的,我是个白痴.在分支指令的情况下,必须从当前指令之后的指令开始计算偏移量.我发誓我阅读了文档,但不知怎的,我设法跳过了.在我的辩护中,我今天病得很重.叹.
谢谢.(并且感谢你没有称我为白痴,尽管这非常愚蠢:P)
编辑#2:顺便说一句,如果有人感兴趣,当Mono.Reflection.Disassembler.GetInstructions
反汇编指令时,它会改变分支指令中操作数的含义.特别是,正如已经指出的那样,分支指令的操作数表示从下一条指令开始的偏移量,而不是从0 Mono.Reflection
开始的偏移量.但是,从0 开始返回偏移量(这可能是我感到困惑的原因;虽然它没有解释我是如何设法跳过部分文档的.
提取物MethodBodyReader.ReadOperand(Instruction instruction)
:
switch (instruction.OpCode.OperandType) {
...
case OperandType.ShortInlineBrTarget:
instruction.Operand = (sbyte) (il.ReadByte () + il.position);
break;
...
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的那样il.position
,它是下一条指令的偏移量(从0开始).此外,它投射到sbyte
,这是我得到3而不是259的原因.这似乎是一个错误(从0开始的偏移可能大于a sbyte
).我会问Jb Evain(作者)并报告.
编辑#3:他还没有回答,但我把它改为:
switch (instruction.OpCode.OperandType) {
...
case OperandType.ShortInlineBrTarget:
instruction.Operand = ((sbyte) il.ReadByte ()) + il.position;
break; …
Run Code Online (Sandbox Code Playgroud) 我一直在编写几个包含嵌套迭代器类的类模板,需要进行相等比较.我认为这是相当典型的,比较是使用非成员(和非朋友)operator==
功能进行的.这样做,我的编译器(我使用带有标志的Mingw32 GCC 4.4 -O3 -g -Wall
)无法找到该功能,并且我已经用尽了可能的原因.
在下面相当大的代码块中有三个类:一个Base类,一个包含Base对象的Composed类,以及一个与Composed类相同的嵌套类,除了它嵌套在一个Outer类中.operator==
每个都提供非成员函数.这些类是模板化和未模板化的形式(在各自的命名空间中),后者等同于前者专用于无符号整数.
在main
,比较每个类的两个相同对象.对于未模板化的情况,没有问题,但对于模板化的情况,编译器无法找到operator==
.这是怎么回事?
#include <iostream>
namespace templated {
template<typename T>
class Base {
T t_;
public:
explicit Base(const T& t) : t_(t) {}
bool
equal(const Base& x) const {
return x.t_==t_;
}
};
template<typename T>
bool
operator==(const Base<T> &x, const Base<T> &y) {
return x.equal(y);
}
template<typename T>
class Composed {
typedef Base<T> Base_;
Base_ base_;
public:
explicit Composed(const T& t) : base_(t) {}
bool equal(const …
Run Code Online (Sandbox Code Playgroud) 当我在我的WCF Web服务上使用我的一个webmethods时,我收到了奇怪的模糊错误消息.因为该错误消息没有提供任何解释允许我发表我的理论.
我相信它可能与我正在使用的返回类型有关
我有一个类型DLL,它在Web服务和客户端都被引用.在这个DLL中是基类ExceptionMessages.这个类的一个孩子叫做DrawingExcepions.
这是一些代码:
public class ExceptionMessages
{
public object[] ReturnValue { get; set; }
}
public class DrawingExceptions : ExceptionMessages
{
private List<DrawingException> des = new List<DrawingException>();
}
public class DrawingException
{
public Exception ExceptionMsg { get; set; }
public List<object> Errors { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
使用代码:
[OperationContract]
ExceptionMessages createNewBom(Bom bom, DrawingFiles dfs);
public ExceptionMessages createNewBOM(Bom bom, DrawingFiles dfs)
{
return insertAssembly(bom, dfs);
}
public DrawingExceptions insertAssembly(Bom bom, DrawingFiles dfs)
{
DrawingExceptions des = new DrawingExceptions();
foreach …
Run Code Online (Sandbox Code Playgroud) 我有这两个数组:
$arr1=array( array("id" => 8, "name" => "test1"),
array("id" => 4, "name" => "test2"),
array("id" => 3, "name" => "test3")
);
$arr2=array( array("id" => 3),
array("id" => 4)
);
Run Code Online (Sandbox Code Playgroud)
我如何从$ arr1"提取"数组,其中id在$ arr2中具有相同的值,进入一个新数组,并将提取的数组也保留在一个新数组中,而不考虑关键顺序?
我正在寻找的输出应该是:
$arr3=array(
array("id" => 8, "name" => "test1")
);
$arr4=array( array("id" => 4, "name" => "test2"),
array("id" => 3, "name" => "test3")
);
Run Code Online (Sandbox Code Playgroud)
谢谢
我编写了一个CMS,其中包含最近登录系统的人员日志.目前,这些数据通过Ajax提供给jQuery UI选项卡.我想将这些信息放在主页的侧栏上,并每隔30秒(或某段时间)通过AJAX加载.
我该怎么做呢?PHP响应是否需要进行JSON编码?我对AJAX和JSON数据还不熟悉.
这是我目前用来从用户表中提取详细信息的PHP-
<?php
$loginLog = $db->query("SELECT name_f, name_l, DATE_FORMAT(lastLogin, '%a, %b %D, %Y %h:%i %p') AS lastLogin FROM user_control ORDER BY lastLogin ASC LIMIT 10");
while ($recentLogin = $loginLog->fetch()) {
echo $recentLogin['name_f'] . " " . $recentLogin['name_l'] . " - " . $recentLogin['lastLogin'];
}
?>
Run Code Online (Sandbox Code Playgroud)
谢谢! UPDATE
好吧,这就是我到目前为止......我坚持的部分是如何循环JSON并将其输入框中.只要我只使用一个结果并确保它不在[]中,它就可以正常工作.我只是学习Ajax和JSON,由于某种原因它不太容易找到我.
Javascript -
$(document).ready(function(){
function refreshUsers(){
$.getJSON('json.php', function(data) {
for (var i = 0; i < data.length; i++) {
$("#loadHere").html('<p>' + data.name + ' ' + data.lastLogin + '</p>');
}
}); …
Run Code Online (Sandbox Code Playgroud) 以下评论意味着什么?
// The line below only works when linked rather than
// referenced, as otherwise you need a cast.
// The compiler treats it as if it both takes and
// returns a dynamic value.
string value = com.MakeMeDynamic(10);
Run Code Online (Sandbox Code Playgroud)
我理解引用程序集的内容.您可以在命令行使用/ ref:开关编译程序文件时引用它,也可以在Visual Studio中向程序集添加静态引用.
但是如何链接到.NET中的程序集?他的意思是,使用Reflection(Assembly.LoadFile())加载程序集?或者,Win32 API LoadLibrary()?或者,.NET是否有我从未听说过的链接器?
我尝试从sdcard(在模拟器中)读取图像,然后用.创建一个Bitmap图像
BitmapFactory.decodeByteArray
方法.我设置了选项:
options.inPrefferedConfig = Bitmap.Config.ARGB_8888
options.inDither = false
然后我将像素提取到ByteBuffer中.
ByteBuffer buffer = ByteBuffer.allocateDirect(width*height*4)
bitmap.copyPixelsToBuffer(buffer)
我在JNI中使用此ByteBuffer将其转换为RGB格式并想要计算它.
但总是我得到错误的数据 - 我在不修改ByteBuffer的情况下进行测试.我唯一要做的就是将它放入JNI的本机方法中.然后将其转换为a unsigned char*
并将其转换回a,ByteBuffer
然后将其返回到Java.
unsigned char* buffer = (unsinged char*)(env->GetDirectBufferAddress(byteBuffer))
jobject returnByteBuffer = env->NewDirectByteBuffer(buffer, length)
在显示图像之前,我得到了数据
bitmap.copyPixelsFromBuffer( buffer )
但其中有错误的数据.
我的问题是,如果这是因为图像内部转换为RGB 565或这里有什么问题?
.....
得到答案:
- >>>是的,它在内部转换为RGB565.
有人知道如何使用ARGB8888像素格式从PNG创建这样的位图图像吗?
如果有人有想法,那就太好了!
c# ×3
android ×2
php ×2
.net ×1
ajax ×1
argb ×1
arrays ×1
bitmap ×1
c#-4.0 ×1
c++ ×1
clr ×1
cocoa ×1
com-interop ×1
compare ×1
extract ×1
google-play ×1
il ×1
image ×1
jquery ×1
mysql ×1
nested-class ×1
objective-c ×1
png ×1
python ×1
reflection ×1
retain ×1
return-value ×1
sql ×1
sqlalchemy ×1
sqlite ×1
templates ×1
wcf ×1