- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有人能说我用对了吗?
LPTSTR nameProc = "";
...
GetProcessImageFileName( hProcess, nameProc, 50 );
printf("name process : %s\n", nameProc);
我不习惯 win32 类型,GetProcessImageFileName 的第二个参数需要一个 LPTSTR typedef,第三个参数需要一个 DWORD 变量。如果不是方法,也许我没有以正确的方式打印 nameProc 的值? (顺便打印一个空字符串)
提前致谢。
(请尽量避免带我去看一些win32 api文档,我无意去了解它,我只是想跟踪一个进程的使用内存,所以我不再处理win类型)
编辑(更新代码):
void printMemoryInfo( DWORD processID ) {
HANDLE hProcess;
TCHAR nameProc[MAX_PATH];
printf("\nProcess ID: %u\n", processID);
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID );
if (hProcess == NULL) return;
if (GetProcessImageFileName( hProcess, nameProc, sizeof(nameProc)/sizeof(*nameProc) )==0)
printf("error\n");
else printf("%s\n", nameProc);
}
int main (void) {
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
if (!EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded )) {
return 1;
}
cProcesses = cbNeeded/sizeof(DWORD);
for (i=0; i < cProcesses; i++) {
printMemoryInfo( aProcesses[i] );
}
return 0;
}
最佳答案
nameProc
需要是一个可变缓冲区,因为它是一个输出参数,目前它可能会崩溃。改变这个:
LPTSTR nameProc = "";
为此:
TCHAR nameProc[MAX_PATH];
同时传递 MAX_PATH
,此时您正在传递 50。
关于c++ - GetProcessImageFileName 和 LPTSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9449270/
这个问题已经有答案了: How do I concatenate const/literal strings in C? (17 个回答) 已关闭 7 年前。 我想向 LPTSTR 添加一个字符串。
我正在为应用程序创建 DLL。应用程序调用 DLL 并接收长度为 8 到 50 的字符串。 我遇到的问题是仅显示应用程序收到的任何消息的第一个字母。 下面是 GetMethodVersion 函数。
我需要创建一个变量以在 CreateProcess 中使用: CreateProcess(z7Cmdline, z7Arg, NULL, NULL, FALSE, NULL, NULL, NULL,
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我试图理解为什么在执行这段代码期间会发生段错误(SIGSEGV)。该错误在测试 while 指令中指定的条件时发生,但不是在第一次迭代时发生,而是在第二次迭代时发生。 LPTSTR arrayStr[
我正在使用此代码获取 Windows 版本: #define BUFSIZE 256 bool config::GetOS(LPTSTR OSv) { OSVERSIONINFOEX osve;
我正在尝试复制 LPTSTR 并将该字符串作为成员变量存储在对象中。但是我复制 LPTSTR 的尝试似乎失败了,当我去访问/打印复制的 LPTSTR 的值时,我遇到了程序崩溃。 是否可以复制 LPTS
我需要一个提供 LPTSTR 和枚举值的函数,根据该值构造一个字符串并将其放入 LPTSTR。 我编写了以下函数,它使用由枚举值索引的名称数组: bool GetWinClassName(const
我一直在使用一个从过滤器驱动程序接收消息的应用程序。驱动程序运行良好,但我的内存管理有问题,可能是 LPTSTRs user & domain。 在调试时,我收到有关堆损坏的消息,它们通常指向两个 f
有人能说我用对了吗? LPTSTR nameProc = ""; ... GetProcessImageFileName( hProcess, nameProc, 50 ); printf("name
我正在 Visual Studio 2013 上编写 C++ dll。我的 dll 应该从 ini 文件中读取参数。因此,我为此创建了一个函数 (ReadConnectionSettings())。我
这个问题在这里已经有了答案: Convert lptstr to char* (8 个答案) Convert LPTSTR to string or char * to be written to
有没有等价于 LPTSTR 的字符串?我知道字符串和 wstring。有 tstring 吗? 最佳答案 你可以定义一个: typedef std::basic_string mystring; ..
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Convert lptstr to char* 我需要将 LPTSTR p 转换为 CHAR ch[]。我是
嗨,谁能帮我将 LPTSTR 转换为 QString 最佳答案 您将在 the docs 中看到Qstring 提供了静态函数来转换 ascii 和 Unicode 字符串: QString from
我需要将 LPTSTR 转换为 LPCWSTR。我需要这个,因为我从 GetDlgItemText 获取 LPTSTR,我将把它提供给 ExtTextOut,它接受 LPCWSTR. 编辑:在从 Ge
我有以下代码来枚举给定 .exe 中的所有资源文件 BOOL CALLBACK EnumResNameProc(HMODULE hModule, LPCTSTR lpszType, LPTSTR lp
我需要将注册表中的值存储在 map 中。我有这样的代码: map mymap; for (i = 0, retCode = ERROR_SUCCESS; i(i, val));
函数参数为LPCTSTR&。 我必须将 LPTSTR 变量作为 LPCTSTR& 传递。 如何将LPTSTR转换为LPCTSTR&。 提前致谢。 最佳答案 根据我以前的 C++ 经验,您正试图通过引用
因此函数 GetUserName() 的输出将用户名作为 LPTSTR。我需要将其转换为 LPCSTR,因为我希望用户名成为 ftp 目录的名称。 TCHAR id [UNLEN+1]; DWORD
我是一名优秀的程序员,十分优秀!