问题列表 - 第41963页

使用方法指针启动一个线程

我正在尝试开发线程抽象(来自Windows API的POSIX线程和线程),我非常希望能够使用方法指针启动它们,而不是函数指针.

我想要做的是线程的抽象是一个带有纯虚方法"runThread"的类,它将被植入未来的线程类中.

我还不知道Windows线程,但要启动POSIX线程,您需要一个函数指针,而不是方法指针.而且我无法找到一种方法将方法与实例相关联,因此它可以作为一个函数工作.我可能只是找不到关键字(我一直在搜索很多),我认为它几乎是Boost :: Bind()所做的,所以它必须存在.

你能帮助我吗 ?

c++ methods multithreading member-function-pointers function-pointers

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

如何在Windows上自动交换两个指针?

好吧,我问这个删除的问题是一样的,但我更直接地问它.

我在同一个类的两个实例中有两个指针变量.我想原子地交换这些变量的内容(不是它们的POINT,只是变量本身).

如果可能的话,我想避免锁.

我该怎么做呢?

编辑:对于三个"InterlockedExchangePointer"的答案,请先阅读MSDN文档.InterlockedExchangePointer将指针目标的值与堆栈寄存器的值进行交换.它(本身)不会在内存位置交换两个指针.

c++ windows

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

Java - 删除字符串的第一个字符

在Java中,我有一个字符串:

Jamaica
Run Code Online (Sandbox Code Playgroud)

我想删除字符串的第一个字符,然后返回 amaica

我该怎么做?

java string substring

199
推荐指数
11
解决办法
40万
查看次数

Jquery :: Ajax动力进度条?

我有一个页面,它使用jquery的ajax函数来发送一些消息.

可能会有超过50k的消息要发送.

这显然需要一些时间.

我要做的是显示一个进度条,其中包含正在发送的消息.

后端是PHP.

我怎样才能做到这一点?


我的解决方案:通过原始ajax调用中的唯一标识符发送.
此标识符存储在数据库(或使用标识符等命名的文件)中,以及完成百分比.

这将在原始脚本继续时更新.

一个函数被设置为调用 progress(ident)

该函数对读取百分比的脚本进行ajax调用.
更新进度条如果返回的百分比不是100,则
该函数设置超时,该超时在1秒后调用自身.

javascript php ajax jquery progress-bar

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

Visual Studio - 如何避免在每次构建时编译所有项目文件?

每次在Visual Studio 2010中构建Visual C++解决方案时,整个项目(而不是整个解决方案)都会重新编译.

必须有一个标志或配置,以使VS只编译已更改的文件+依赖文件.它在哪里?

更新:

  • 我将"Yes(/ Gm)"设置为My project的配置属性\ C/C++\Code Generation\Enable Minimal Rebuild.它仍然在F7上编译所有项目的文件.

conditional-compilation visual-studio

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

SQL SERVER - 了解MIN(文本)的工作原理

我正在进行一些挖掘并寻找有关SQL Server如何评估的解释MIN(Varchar).

我在BOL中找到了这句话:MIN在底层数据库中定义的整理顺序中找到最低值

因此,如果我有一个包含以下值的行的表:

Data

AA
AB
AC
Run Code Online (Sandbox Code Playgroud)

做一个SELECT MIN(DATA)会返回AA.我只是想了解这背后的原因并更好地理解BOL.

谢谢!

t-sql sql-server sqltransaction

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

如何在PHP中解密Jasypt加密的字符串?

这可能是一个不可能的问题,但我将遗留系统从Java迁移到PHP,我需要能够解密用PHP中的Jasypt加密的字符串.

根据文档,Jasypt使用以下算法:

  • 向要加密的数据附加随机盐(我认为与密码的初始化向量相同)
  • 重复加密1000次
  • 将未加密的salt/IV添加到加密的字符串中
  • Base64编码整个字符串

遗留应用程序使用PBEWithMD5AndDESJasypt算法.我完全清楚MD5不是为解密而设计的,这不是我想要做的.

我只想对字符串进行DES解密,这样我剩下的就是MD5哈希.我似乎无法获得除PHP之外的二进制垃圾.我错过了什么?

<?php

#jasypt.algorithm=PBEWithMD5AndDES
$secret = 'secret-password';
$encrypted = 'xh/roK2diJPDfZGlT9DlwuG2TsS7t7F+';

$cipher = MCRYPT_DES;

$modes = array(
  'ecb' => MCRYPT_MODE_ECB, 
  'cbc' => MCRYPT_MODE_CBC, 
  'cfb' => MCRYPT_MODE_CFB,
  'ofb' => MCRYPT_MODE_OFB, 
  'nofb' => MCRYPT_MODE_NOFB,
  'stream' => MCRYPT_MODE_STREAM,
);

foreach($modes as $mode => $mc) {

  $iv_len = 0; //mcrypt_get_iv_size($cipher, $mode);

  $password = base64_decode($encrypted);
  $salt = substr($password, 0, $iv_len);
  $data = substr($password, $iv_len);

  for($i = 0; $i < 1000; $i++) {
    $data = @mcrypt_decrypt($cipher, $secret, $data, …
Run Code Online (Sandbox Code Playgroud)

php java mcrypt jasypt

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

为什么在函数调用中使用事件监听器?

我最近一直在研究听众,我想我终于让他们失望了.基本上,它们是在另一个对象的方法上调用的函数.我的问题是,为什么在调用函数时创建事件监听器会正常工作?

例如,我想调用player.display_health(),当触发它时,应该触发并存储方法player.get_health(),以便display_health()可以访问它.为什么我应该使用事件监听器而不是简单地调用该函数?即使display_health()在另一个对象中,这对我来说似乎仍然不是问题.

如果你有另一个更好地符合用法的例子,请告诉我.也许特定语言不能从中受益多少?(Javascript,PHP,ASP?)

events event-listener event-handling

11
推荐指数
2
解决办法
4956
查看次数

如何看待"反如果"运动及其目标?

我有一个开发人员最近3年,一直在使用if-else或if-else if语句在我的编程习惯中很多.

今天,我找到了这个链接.

我放在这里的一个明显的例子

public void doSomthing(String target, String object){
    //validate requests
    if(target != null && target.trim().length() < 1){
        //invalid request;
    }

    //further logic

}
Run Code Online (Sandbox Code Playgroud)

现在,我已经看到了各种各样的地方,图书馆的这种检查.所以,我想讨论一下这种运动的价值.

请让我知道你的看法.

java design-patterns programming-languages anti-patterns

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

除去Vim中的正则表达式匹配之外的所有内容

我的具体案例是一个包含大量文本和IPv4地址的文本文档.我想删除除IP地址以外的所有内容.

我可以:vglobal用来搜索([0-9]{1,3}\.){3}[0-9]{1,3}和删除没有IP地址的所有行,但之后我只知道如何搜索整行并选择匹配的文本.有没有更简单的方法.

简而言之,我正在寻找一种方法来执行以下操作而不使用外部程序(如grep):

grep --extended-regexp --only-matching --regexp="([0-9]{1,3}\.){3}[0-9]{1,3}"
Run Code Online (Sandbox Code Playgroud)

从vim调用grep可能需要调整我的正则表达式(例如:remove\v).使用vim的增量搜索向我显示我的模式是正确的,我也不想在grep中验证我的正则表达式.


编辑:感谢彼得,这是我现在使用的功能.(C是我在函数中常常使用的寄存器.)

"" Remove all text except what matches the current search result
"" The opposite of :%s///g (which clears all instances of the current search).
function! ClearAllButMatches()
    let old = @c
    let @c=""
    %s//\=setreg('C', submatch(0), 'l')/g
    %d _
    put c
    0d _
    let @c = old
endfunction
Run Code Online (Sandbox Code Playgroud)

Edit2:我把它作为一个接受范围的命令(但默认为整个文件).

"" Remove all text except what matches the current search result. Will put each
"" match on its …
Run Code Online (Sandbox Code Playgroud)

regex vim

15
推荐指数
4
解决办法
8616
查看次数