问题列表 - 第17747页

18
推荐指数
2
解决办法
4355
查看次数

在XS中为C库注册多个Perl子引用

无论perlcall(在"策略存储回调上下文信息"一节),并延伸和嵌入Perl(以下简称"回调"一节)列出了3点不同的方式来处理从XS/C调用的Perl子例程:

  1. 马上:XS打电话
  2. 延迟:将子ref保存为SV*以供日后使用
  3. 多个:保存n个子参考以供日后使用

上面针对#3列出的示例和细节使用XS中的散列来将子ref与特定C函数相关联,但是它们预定义了固定数量的C函数,这是不合适的.

我正在使用一个XS接口到一个C库,它使用带有可选参数的回调/函数指针,例如:

  blah(custom_type *o, void (*func) (void *data, int more_data), const void * data);
Run Code Online (Sandbox Code Playgroud)

这个库中的C blah将最终调用传递给它的函数以及传入的数据.

如果可能的话,我想将C API的一对一映射到Perl.例如

  blah($o, \&func, $data);
Run Code Online (Sandbox Code Playgroud)

目前,我上面有#2,但是另一次调用blah()会覆盖已保存的SV*.

我将如何实施上述#3?

perl xs

5
推荐指数
1
解决办法
783
查看次数

使用New Handler附加Eventhandler与直接分配它

创建新事件处理程序与直接将其分配给事件的实际差异,优缺点是什么?

_gMonitor.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged);
Run Code Online (Sandbox Code Playgroud)

VS

_gMonitor.CollectionChanged += OnCollectionChanged;
Run Code Online (Sandbox Code Playgroud)

c# syntax events

10
推荐指数
1
解决办法
1006
查看次数

使用jQuery AJAX获取图像的最有效方法

Reader的摘要版本:从服务器请求图像并使用AJAX(或AJAI,或许?:)将其放入DOM的最有效方法是什么?这是长版本:

您好,我正在设置一个包含项目列表的简单页面,当您单击其中一个时,它会执行以下操作:

  1. 清除之前图像的页面(隐藏)上的模态对话框(如果有)
  2. 请求页面 /url/ajax/some-image/
  3. 用微调器显示打开模态对话框
  4. 一旦对服务器的请求完成:将该页面的HTML注入模式对话框

上面请求的页面搜索数据库以查找与给定URL匹配的条目,并返回显示的HTML页面<img src="path/to/image.jpg" alt="Whatever this would be." />.我不确定jQuery是否能为我带来一些魔力来提高效率,但在我看来,请求一个请求另一个图像的页面正在做更多的工作而不是需要完成的工作.我正在寻找的将是更像这样的东西:

  1. 清除之前图像的模态对话框
  2. 请求图像/url/ajax/some-image/(我可以将其设置为返回图像本身,而不是图像的<img/>标记)
  3. 用微调器显示打开模态对话框
  4. 一旦对服务器的请求完成:将图像直接注入模态对话框

我遇到的问题是......怎么样?我在看$.get,这似乎对我来说最有意义,而且我只是有点太过分了 - 我是JavaScript/jQuery的新手.

我已经将some-imageURL部分的rel值设置为<a>它对应的值(澄清:这是在服务器端完成的),因此我可以在click()事件的函数中很容易地构建到图像的URL.被解雇,模态对话框就是div#dialog.难道这与为改变简单的东西做src<img/>

ajax jquery image

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

散列时"盐"的目的是什么?

好的,我想了解使用盐的原因.

当用户注册时,我为他/她生成一个我存储在DB中的唯一盐.然后我用SHA1散列它和密码.当他/她登录时我会重新哈希sha1($salt.$password).

但如果有人攻击我的数据库,他可以看到哈希密码和盐.

是否更难破解而不仅仅是用盐哈希密码?我不明白......

对不起,如果我是傻瓜......

hash saltedhash

11
推荐指数
1
解决办法
2923
查看次数

在php中创建二维矩阵

问题是我必须在php中创建一个2D矩阵,其中每行和每列必须有一个键.我尝试这样做,但会发生的是创建一个不像矩阵的二维数组.我使用了以下代码:

$x=$row['start_id'];
$y=$row['dest_id'];
$d=$row['distance'];
$this->map[$x][$y]=$d;

这里map是预期的矩阵.此代码的目的是创建一个邻接矩阵,然后用最大距离填充未设置的单元格.上面代码中的$ x,$ y和$ d是从mysql查询的结果派生的.

样本输出:

Array (
    [10010012] => Array ( 
        [10010013] => 2
        [10010016] => 8 
    )
    [10010016] => Array ( 
        [10010015] => 5 
    )
    [10010013] => Array ( 
        [10010014] => 7 
        [10010016] => 3
    )
    [10010014] => Array ( 
        [10010015] => 2 
    )
)
Run Code Online (Sandbox Code Playgroud)

现在的问题是我无法填充空单元格,
例如row key => [10010012]和column key => [10010015](无法设置值)

任何帮助表示赞赏.如果可能的话,还要提到如何遍历这些矩阵.

我是一个相对初学者,并尽力解释我的问题.但是,如果您发现任何缺点,请指出它们.

编辑:矩阵不是正方形.

php 2d associative matrix

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

通过JavaScript中的字符串调用函数并保持在范围内

我一直在玩,并且搜索了一下,但我无法弄清楚这一点.我在JavaScript对象中有一个伪私有函数,需要通过eval调用(因为函数的名称是动态构建的).但是,函数被闭包隐藏在全局范围内,我无法弄清楚如何使用eval()来引用它.

例如:

var myObject = function(){
    var privateFunctionNeedsToBeCalled = function() {
        alert('gets here');
    };

    return {
        publicFunction: function(firstPart, SecondPart) {
            var functionCallString = firstPart + secondPart + '()';
            eval(functionCallString);
        }
    }
}();

myObject.publicFunction('privateFunctionNeeds', 'ToBeCalled');
Run Code Online (Sandbox Code Playgroud)

我知道这个例子看起来很傻但我想保持简单.有任何想法吗?

javascript scope eval private function

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

在RSS中显示HTML

我有什么方法可以通过RSS提要输入一些HTML吗?我意识到我正在弯曲科学规律,但我处于一些紧张的环境中.我有Wordpress设置所以我在一端发布了一些HTML/Inline CSS,而在另一个网站上,另一个网络团队将解析RSS.

有没有办法做到这一点?我疯了吗?如果没有,还有其他解决方案吗?

html wordpress rss

2
推荐指数
1
解决办法
1114
查看次数

如何在VB.NET字符串文字中转义#字符?

如果我需要在字符串文字中转义双引号字符,我将使用两个连续的双引号,如下所示:

Dim name = "Chuck ""Iceman"" Liddell"
Run Code Online (Sandbox Code Playgroud)

但是,似乎连续#的工作方式不同.编译器期望编译器指令遵循#字符,即使它用双引号括起来.怎么能告诉编译器我的字符串中需要一个#字符?

谢谢!

编辑:正如下面的一些答案所指出的,#不是保留字符.我在Visual Studio中关闭了我的解决方案并重新打开它,并且不再让编译器曲线警告我.谢谢!

.net vb.net escaping

1
推荐指数
2
解决办法
2159
查看次数

使用Python C API时检查返回值有多重要?

似乎每次我调用一个返回PyObject*的函数时,我都要添加四行错误检查.例:

py_fullname = PyObject_CallMethod(os, "path.join", "ss", folder, filename);
if (!py_fullname) {
    Py_DECREF(pygame);
    Py_DECREF(os);
    return NULL;
}
image = PyObject_CallMethodObjArgs(pygame, "image.load", py_fullname, NULL);
Py_DECREF(py_fullname);
if (!image) {
    Py_DECREF(pygame);
    Py_DECREF(os);
    return NULL;
}
image = PyObject_CallMethodObjArgs(image, "convert", NULL);
if (!image) {
    Py_DECREF(pygame);
    Py_DECREF(os);
    return NULL;
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?有一个更好的方法吗?这有一个额外的问题,我可能会忘记我应该的所有东西Py_DECREF().

c python memory-management

3
推荐指数
1
解决办法
1310
查看次数