小编Pet*_*r.O的帖子

ostream showbase对于零值不显示"0x"

PSPS :( 一个预先编写脚本的脚本)
刚刚想到一个更有先见之明的问题包括以下概念:这是否为零值整数的非显示"0x"(showbase)是标准行为,或者这只是我的MinGW实施的一个怪癖?

这一切都是在一个愉快的星期天早上开始的......我想以十六进制表示形式转储一些Handles,并采用一致的格式化方式.
我想要一个前导0x和一个固定宽度,但事实证明这是使用预期的流操纵器难以捉摸的.
我发现这样做的唯一方法是将Handles强制转换为unsigned long.这似乎有点不合理,我希望我不是唯一一个想要这个的人......
在标准六角形机械手中遗漏了什么?是因为类型void*(HANDLE)只是在ostream的正常十六进制处理之外定义?

总结:我不想将HANDLE强制转换为不是的东西.
我不想硬编码"0x"前缀.有没有办法使用标准操纵器?还是我需要重载ostream对HANDLE的处理?(但这可能使我超负荷!)

这是我的测试代码(及其输出).
我用过'.' 作为填充字符,为清楚起见,(我实际上将使用'0')

HANDLE h; 
ULONG ul; 
int iH = sizeof(h); // how many bytes to this void* type.
int iW = iH*2;      // the max number of hex digits (width).
int iW2= iW+2;      // the max number of hex digits (+ 2 for showbase "0x").
int iX = 4;         // the number of bits per hex digit.
int …
Run Code Online (Sandbox Code Playgroud)

c++ formatting stream manipulators

10
推荐指数
2
解决办法
1784
查看次数

在emacs中,如何在C/C++中禁用注释自动缩进?

有时我想在一行(//)或一行上完全左对齐临时注释/* */.但是,CC Mode在键入第二个键时通过自动缩进来覆盖它.一般来说,我喜欢关键字等的自动缩进,但我更希望它被禁用以进行评论.(更新:即.我想禁用c-electric -key-bindings 触发注释缩进的方式,但注释仍应正常缩进)

我已尝试将这些行放入.emacs,但它不会阻止这种行为.

(c-electric-slash nil)
(c-electric-star nil)
Run Code Online (Sandbox Code Playgroud)

emacs mode indentation

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

如何通过ShellExecuteEx打开hWnd窗口.. hProcess?

这个"简单"问题似乎充满了侧面问题.
例如.新进程是否打开了多个窗口; 它有闪屏吗?
有一个简单的方法吗?(我正在开始一个新的Notepad ++实例)

...
std::tstring  tstrNotepad_exe = tstrProgramFiles + _T("\\Notepad++\\notepad++.exe");

SHELLEXECUTEINFO SEI={0};
sei.cbSize       = sizeof(SHELLEXECUTEINFO);
sei.fMask        = SEE_MASK_NOCLOSEPROCESS;
sei.hwnd         = hWndMe;  // This app's window handle
sei.lpVerb       = _T("open");
sei.lpFile       = tstrNotepad_exe.c_str();     
sei.lpParameters = _T(" -multiInst -noPlugins -nosession -notabbar ";   
sei.lpDirectory  = NULL;
sei.nShow        = SW_SHOW;
sei.hInstApp     = NULL;    
if( ShellExecuteEx(&sei) )
{ // I have sei.hProcess, but how best to utilize it from here?
}
...
Run Code Online (Sandbox Code Playgroud)

c++ window process handle

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

这些窗户是什么?.."M"和"默认IME"(来自GetWindowText)

使用EnumWindows的和GetWindowText时,我看到"M"和'默认IME’很多头衔.
什么是它们的主要功能?..这似乎有什么东西相当的基础.

c++ title

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

需要Linux cmd-line应用程序来比较二进制文件并在第一次不匹配时退出

是否有Linux命令行应用程序将比较两个二进制文件并在第一次不匹配时退出?

cmp 似乎没有退出选择.

unix linux binary command-line compare

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

Emacs eshell.如何在按RET时读取命令行的内容

我打算在按RET时为每个提示使用bm.el Visible Bookmarks.我已经设法在某种程度上实现了这一点.如果缺少一些重要问题,请在下面评论我的代码:例如.我不知道我是否需要处理args而不仅仅是将它们传递给默认函数.

当我在空命令行上按RET时,我不想为该行添加书签.在将contol传递给默认函数之前,如何拦截命令行内容eshell-send-input

(defun eshell-send-input-zAp (&optional use-region queue-p no-newline)
  "eshell-send-input, customized to add bm-bookmark to prompt line"
 (interactive)
  (bm-bookmark-add)
  (eshell-send-input use-region queue-p no-newline))

(add-hook 'eshell-mode-hook
          #'(lambda ()
              (define-key eshell-mode-map
                [return]
                'eshell-send-input-zAp)))
Run Code Online (Sandbox Code Playgroud)

emacs command-line elisp eshell

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

使用elisp,如何在emacs终端仿真器中启动,发送密钥和停止命令?

使用elisp(不是交互式键和弦),如何在emacs终端仿真器中运行命令;以及如何将按键发送到该缓冲区?

开始term似乎需要(term "/bin/bash"),它没有运行命令的范围。我认为这可能是因为术语旨在作为一种交互式工具...

我也想发送特定的密钥到正在运行的应用程序。可以做到这一点。我以为(insert'x)可以工作,但是它没有缓冲区参数,也不允许M- C- S- s-

linux emacs elisp term

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

在elisp中,如何将"var = value \n ..."字符串计算为同名的lisp变量?

mplayer工具(midentify)输出"shell-ready"行,用于由bash/sh /任何解释器进行评估.

如何将这些var-names作为emacs中的elisp var-names分配给相应的值?数据以字符串形式(通过shell-command-to-string)

这是数据

ID_AUDIO_ID=0
ID_FILENAME=/home/axiom/abc.wav
ID_DEMUXER=audio
ID_AUDIO_FORMAT=1
ID_AUDIO_BITRATE=512000
ID_AUDIO_RATE=0
ID_AUDIO_NCH=1
ID_LENGTH=3207.00
ID_SEEKABLE=1
ID_CHAPTERS=0
ID_AUDIO_BITRATE=512000
ID_AUDIO_RATE=32000
ID_AUDIO_NCH=1
ID_AUDIO_CODEC=pcm
ID_EXIT=EOF
Run Code Online (Sandbox Code Playgroud)

emacs elisp

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

是否有直接的 elisp 方法来检查进程是否在 emacs 术语缓冲区中运行?

我需要在我的 emacs 术语中检查进程是否仍在运行;开始通过(term "/bin/bsh"),然后重命名为,例如。term-A.

我试过(term-check-proc "term-A"),但它没有显示我需要什么,或者至少,我不知道如何使用它。

ps afx如果有多个emacs term活动并运行相同的程序,试图通过 shell 调用(或类似的)来追踪它是有问题的(在我的情况下,这很有可能)......

我真的需要知道,如果一个进程在特定的Emacs长期缓冲term-A,正在运行或不。

emacs elisp process

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

为什么perl regex.*在空分隔记录中不识别\n.$/="\ 0'

我正在尝试解析一些\x00空分隔的数据.我认为在一个-pe/-ne循环中,$_相当于.*替换正则表达式的模式匹配方...但是正如我的例子所示,它们不一样......

                                                  #      ???? works, but is not a regex
printf 'aaa\n\0bbb\n\0' | perl -ne 'BEGIN{ $/="\0"; }; s/$_/\"$.$&\"/ and print;' |xxd
printf 'aaa\n\0bbb\n\0' | perl -ne 'BEGIN{ $/="\0"; }; s/.*/\"$.$&\"/ and print;' |xxd
                                                  #      ??__ gives un-expected output

# output                                          #      ?       ? 
0000000: 2231 6161 610a 0022 2232 6262 620a 0022  "1aaa..""2bbb.."
0000000: 2231 6161 6122 0a00 2232 6262 6222 0a00  "1aaa".."2bbb"..
                                                  #    ?       ?
Run Code Online (Sandbox Code Playgroud)

获得一种s/ / /替代品来识别全部需要$_ …

regex perl substitution

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

通过psapi.dll调用GetModuleFileNameEx不起作用,但为什么?

我正在使用没有完整功能的MinGW.例如.它没有wchar_t流支持.我已经设法通过编写一组迷你操纵器(下面的代码中的wcusT())来解决这个问题.但是我发现我再次遇到了GetModuleFileNameEx.我无法原生运行GetModuleFileNameEx()此函数已定义<psapi.h>,但似乎没有任何内容可以链接到.这是我的第一个问题:可以/确实/是MinGW能够运行GetModuleFileNameEx吗?我需要做什么?我错过了一些简单的事吗?作为一种解决方法,我试图通过调用它在Windows system32文件夹中的dll(psapi.dll)来间接运行它......但是出了点问题.我还有另一个禁区.我对以下代码的任何评论表示感谢..谢谢

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow)
{ /// typedef and load a dll function
  /// ===============================
  typedef DWORD (__stdcall *foo)(HANDLE, HMODULE, LPTSTR, DWORD);
  LPTSTR  ptcPSAPI_DLL = _T("C:\\WINDOWS\\system32\\psapi.dll");
  HMODULE   hPSAPI_DLL = LoadLibrary(ptcPSAPI_DLL);
  if( !hPSAPI_DLL ) 
  { std::cout<<"ERROR: Failed to load "<<wcusT(ptcPSAPI_DLL)<<std::endl;
    return 1;
  }
  foo GetModFnEx=(foo)GetProcAddress(hPSAPI_DLL,
                  #ifdef  UNICODE
                         "GetModuleFileNameExW");
                  #else
                         "GetModuleFileNameExA");
                  #endif

  /// call the dll library function
  /// =============================
  HWND   hWndNPP = FindWindow(_T("Notepad++"),NULL); // the window calass name
  TCHAR  ytcMFqFn[FILENAME_MAX]; // …
Run Code Online (Sandbox Code Playgroud)

c++ dll

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