小编c00*_*0fd的帖子

RegEx匹配字符串开头的符号,或字符串本身的开头

我正在尝试提出一个可以在一组子域中捕获TLD的正则表达式.所以我有这个:

/\.?google\.com$/i
Run Code Online (Sandbox Code Playgroud)

这应该做以下匹配:

sgoogle.com            -- no match
google.com             -- match
maps.google.com        -- match
job_s.map.google.com   -- match
place.google.com.eu    -- no match
Run Code Online (Sandbox Code Playgroud)

这是有效的,除了第一个,即sgoogle.com它也匹配,它不应该.

所以我很好奇,有没有办法指定我在哪里\.?匹配点或字符串的开头?

javascript regex

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

如何通过其HWND句柄更改另一个进程中TDateTimePicker控件中当前选中的日期?

我正在编写一个自定义模块来使用专有软件.(该软件已停产,我没有其源代码.)我的模块将作为一个单独的进程运行.其目标是通过该专有软件实现操作自动化.为此,我需要能够在TDateTimePicker控件中选择特定日期.我知道这是一个Delphi控件,但就我对Delphi/Pascal的了解而言.我可以找到HWND这个控件的句柄.

所以我的问题 - 有没有办法在该控件中设置一个日期只能通过外部进程的句柄(使用WinAPI)

c c++ delphi winapi

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

MultiByteToWideChar 用于 Unicode 代码页 1200、1201、12000、12001

我有一个函数可以将字符串从各种编码转换为 Windows 内部使用的 Unicode-16。为此,我使用了MultiByteToWideChar API。但我刚刚发现以下内容:

//See how much data do we need?
//UNIT nCodePage = 1201;  // just as an example
UINT nchLen = ::MultiByteToWideChar(nCodePage, 0, 
    pByteArrayToConvert, ncbSzByteArrayToConvert, NULL, 0);
if(!nchLen)
{
    //Failed
}
Run Code Online (Sandbox Code Playgroud)

对于以下带有错误代码ERROR_INVALID_PARAMETER(87) 的Unicode 代码页失败:

> 1200  utf-16  Unicode UTF-16, little endian byte order
> 1201  unicodeFFFE Unicode UTF-16, big endian byte order
> 12000 utf-32  Unicode UTF-32, little endian byte order
> 12001 utf-32BE    Unicode UTF-32, big endian byte order
Run Code Online (Sandbox Code Playgroud)

知道为什么以及如何进行这些转换吗?

c++ windows unicode winapi

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

单个INSERT INTO语句中允许多少个值?

当我在SQL Server 2008数据库表中插入多行时:

INSERT INTO MyTable (Name, ID)
VALUES ('First',1),
('Second',2),
('Third',3),
('Fourth',4),
('Fifth',5)
Run Code Online (Sandbox Code Playgroud)

我可以在一个INSERT INTO声明中使用多少这些值?

t-sql sql-server sql-server-2008-r2

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

RtlGenRandom/CryptGenRandom or other WinAPI to generate cryptographically secure random numbers (first quarter of 2018)

I swear, this seems to be changing every time I check the MSDN documentation. When I coded my executable Microsoft was suggesting to use RtlGenRandom API to generate cryptographically strong random numbers.

Now when I'm checking documentation for RtlGenRandom, the note there suggests using CryptGenRandom instead. But then another note for CryptGenRandom states this:

Important: This API is deprecated. New and existing software should start using Cryptography Next Generation APIs. Microsoft may remove this API in future releases.

So …

c random encryption winapi cryptography

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

对C++中运算符优先级的困惑

比如说,在下面的测试表达式中:

int ggg9 = fggg2() + (fggg3() && fggg4() < fggg5() * fggg6());
//                 4          11         6         3
Run Code Online (Sandbox Code Playgroud)

如果我们遵循运算符优先级(在表达式下面的注释行中显示),我会假设首先计算parens中的表达式,然后将结果添加到fggg2().

因此,我假设它将按此顺序解决:

int r1 = fggg5() * fggg6(); //Precedence 3 (inside parens)
int r2 = fggg4() < r1;      //Precedence 6 (inside parens)
int r3 = fggg3() && r2;     //Precedence 11 (inside parens)
int ggg9 = fggg2() + r3;    //Outside of parens, so it's last
Run Code Online (Sandbox Code Playgroud)

但是x86-64 gcc 8.2 解决它是这样的:

在此输入图像描述

(我将它转换回C++)

    int i0;
    int r2 = fggg2();
    int …
Run Code Online (Sandbox Code Playgroud)

c++ gcc operator-precedence visual-studio-2017

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

使用SendInput API模拟鼠标单击时是否需要引入延迟?

我需要能够在另一个进程中模拟鼠标单击控件.我想出了以下方法:

BOOL SimulateMouseClick(POINT* pPntAt)
{
    //Simulate mouse left-click
    //'pPntAt' = mouse coordinate on the screen
    //RETURN:
    //      = TRUE if success
    BOOL bRes = FALSE;

    if(pPntAt)
    {
        //Get current mouse position
        POINT pntMouse = {0};
        BOOL bGotPntMouse = ::GetCursorPos(&pntMouse);

        //Move mouse to a new position
        ::SetCursorPos(pPntAt->x, pPntAt->y);

        //Send mouse click simulation
        INPUT inp = {0};
        inp.type = INPUT_MOUSE;
        inp.mi.dx = pPntAt->x;
        inp.mi.dy = pPntAt->y;
        inp.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
        if(SendInput(1, &inp, sizeof(inp)) == 1)
        {
            //Do I need to wait here?
            Sleep(100); …
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi sendinput

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

我可以强制 mysqli 函数返回错误代码而不是抛出异常吗?

我维护了一个网站,不久前用 PHP 编写。它的大多数功能依赖于返回错误,而不是捕获异常。像这样的东西:

(注意:在 PHP 的早期版本中这是完全可以接受的行为。)

$tbl_nm = "table_name";

$link = @mysqli_connect($HOSTNAME, $USERNAME, $PASSWD);
if($link !== false)
{
    if(@mysqli_select_db($link, $DBNAME))
    {
        $query = "CREATE TABLE `".$tbl_nm."` (".
            $COL_ID." INT AUTO_INCREMENT PRIMARY KEY, ".
            $COL_DATE." DATE, ".
            $COL_TIME." TIME, ".
            $COL_MSG." TINYTEXT".
            ")";
            
        $res = @mysqli_query($link, $query);     //** EXCEPTION RAISED HERE! **
        if($res === false)
        {
            if(mysqli_errno($link) != 1050)    //1050 - if table already exists
            {
                logMySQLErrorReport($link, "Error creating table");
            }
        }

        //....
    }
    else
    {
        logMySQLErrorReport($link, "Error setting db");
    } …
Run Code Online (Sandbox Code Playgroud)

php mysqli php-8

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