小编Tom*_*ica的帖子

在 64 位机器上检查 32 位程序时,我可以获得任务列表 /m 的正确 DLL 模块列表吗?

Windows 上的命令tasklist具有非常有用的功能:它可以列出dll一个进程的所有模块或所有进程。下面的命令将列出以下命令使用的所有 DLL 文件explorer.exe

tasklist /fi "ImageName eq explorer.exe" /m
Run Code Online (Sandbox Code Playgroud)

看起来像这样(缩短,翻译成英文):

Process name              PID      Modules
========================= ======== ============================================
explorer.exe                  1104 ntdll.dll, kernel32.dll, KERNELBASE.dll,
                                   ADVAPI32.dll, msvcrt.dll, sechost.dll,
                                   RPCRT4.dll, GDI32.dll, USER32.dll, LPK.dll,
                                   USP10.dll, SHLWAPI.dll, SHELL32.dll,
                                   ole32.dll, OLEAUT32.dll, EXPLORERFRAME.dll,
                                   DUser.dll, DUI70.dll, IMM32.dll, MSCTF.dll,
Run Code Online (Sandbox Code Playgroud)

问题是这对于 64 位进程来说效果不太好:

C:\>tasklist /fi "ImageName eq firefox.exe" /m

Process name              PID      Modules
========================= ======== ============================================
firefox.exe                   4980 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll
Run Code Online (Sandbox Code Playgroud)

你看到的并不完整,它看起来更像是这样的:

图片描述

我的问题是:我可以将任务列表作为 32 位程序启动还是以其他方式确保它将返回正确的值?我需要从另一个程序(Java)调用任务列表并获取已加载的 DLL 文件的列表。我需要这个来确保我不会尝试加载 DLL 两次。

dll cmd command-prompt windows-7-x64

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

如何使 <T extends E> 泛型类型参数包含在内?

我有一个界面:

  /**
   * Getter for any values within the GameObject and it's subclasses. 
   * Used as callback.
   * 
   * Typical implementation would look like:
   *   new ValueGetter<SummonerSpell, String> {
   *     public String getValue(SummonerSpell source) {
   *       return source.toString();
   *     }
   *   }
   * @param <T> 
   * @param <V> Type of value retrieved
   */
  public static interface ValueGetter<T extends GameObject, V> {
    public V getValue(T source);
  }
Run Code Online (Sandbox Code Playgroud)

在一种情况下,我想使用接口GameObject本身,而不是某个子类。我想在List游戏对象中做到这一点:

  /**
   * Will call the given value getter for …
Run Code Online (Sandbox Code Playgroud)

java generics inheritance

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

在iOS上获取VoiceOver的当前速度

有没有办法在iOS应用程序上获得VoiceOver语音的当前速度?有时我使用自己的AVSpeechUtterance字符串,我想使用与VoiceOver设置相同的速率.提前致谢.

accessibility ios voiceover

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

我的等待 - 使用 std::mutex 的通知机制是否正确?

我开始使用 std::mutexes 来停止一个线程并等待另一个线程恢复它。它是这样工作的:

主题 1

// Ensures the mutex will be locked
while(myWaitMutex.try_lock());
// Locks it again to pause this thread
myWaitMutex.lock();
Run Code Online (Sandbox Code Playgroud)

主题 2

// Executed when thread 1 should resume processing:
myWaitMutex.unlock();
Run Code Online (Sandbox Code Playgroud)

但是我不确定这是否正确并且在所有平台上都可以正常工作。如果这不正确,那么在 C++11 中实现它的正确方法是什么?

c++ multithreading c++11 stdmutex

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

将std :: shared_ptr转换为QPointer

我们的应用程序的设计非常差-它既使用std::shared_ptrQObject亲子关系来管理我们的一些对象。当QObject::~QObject删除其子对象,然后shared_ptr尝试也将其删除时,这会导致段错误。

我们讨论了此问题,但目前尚无轻松解决此问题的方法,因此在我们对其进行修复之前,我将需要使用一些肮脏的技巧。

现在我有一个std::shared_ptr<MyObject> getMyObjectPtr()功能。我需要将结果放入QPointer<MyObject>-QPointers是弱指针,仅指示他们管理的QObject是否已删除。我无法以任何方式更改该功能,它将破坏整个应用程序。

我使用自定义脱发器尝试了一些技巧,但这似乎行不通。

// get the shared_ptr from inacessible API
std::shared_ptr<MyObject> oldPtr(getMyObjectPtr());
// create a new pointer that never deletes it's value
std::shared_ptr<MyObject> newPtr(nullptr, [](MyObject*) {});
// Move pointer from old to new non-deleting ptr
newPtr.swap(oldPtr);
QPointer<MyObject> qptr(newPtr.get());
Run Code Online (Sandbox Code Playgroud)

但是,以这种方式,一旦函数结束,指针将被删除。大概,自定义脱机器与数据一起移动。

c++ shared-ptr c++11 qpointer

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

错误:加载块0失败。-Webpack尝试加载0.js

我有以下项目结构:

|-mainFile.js
|-scripts -
          |-Library1.js
          |-Library2.js
Run Code Online (Sandbox Code Playgroud)

库文件使用requirejs define([], function() {})语法。

因此,我将其放入webpack.config.js中:

module.exports = {
    resolve: {
        modules: [
            path.resolve(__dirname, 'scripts'),
            // The normal path
            "node_modules"
        ]
    },
    /** ... **/
}
Run Code Online (Sandbox Code Playgroud)

然后在mainFile.jswebpack的入口点执行此操作:

require(["Library1", "Library2"], function(Library1, Library2) { ... });
Run Code Online (Sandbox Code Playgroud)

我得到这个错误:

GET http://localhost:3000/0.js [HTTP/1.1 404 Not Found 3ms]
Error: Loading chunk 0 failed.
Stack trace:
onScriptComplete@http://localhost:3000/player/webpack_build.js:100:24
                     webpack_build.js:146:52
The resource from “http://localhost:3000/0.js” was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff).[Learn More]
test_file.html Error: Loading chunk 0 failed.
Run Code Online (Sandbox Code Playgroud)

因此,webpack尝试加载一些 …

javascript node.js webpack

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

构建 GDAL 时出错:应定义 PROJ_INCLUDE。PROJ &gt;= 6 是必需的依赖项

我正在尝试让 GDAL 3.0.1 工作。生成 Visual Studio 2017 项目是小菜一碟,我只需要运行generate_vcxproj.bat. 但现在我在这一行出现错误makefile.vc

!IF !DEFINED(PROJ_INCLUDE)
!ERROR PROJ_INCLUDE should be defined. PROJ >= 6 is a required dependency
!ENDIF
Run Code Online (Sandbox Code Playgroud)

那是怎么回事?如果我要定义PROJ_INCLUDE,它应该具有什么价值?这甚至是预处理器定义吗?

c++ gdal visual-studio visual-studio-2017

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

如何使用Lua脚本语言打开Web套接字?

作为初学者,我想在基于Linux的服务器上使用Lua打开一个Web套接字.此服务器应允许Android客户端连接到它.你能给我一些用Lua打开网络插座的示例代码吗?

lua websocket

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

使varargs Exception构造函数填充stringstream

基本上我正在制作Exception类,我希望能够轻松传递调试细节,例如:

var error = someFunction();
if(error!=0) {
    throw MyException("someFunction ended with error state #",error,'.');
}
Run Code Online (Sandbox Code Playgroud)

这将要求MyException类接受可以处理的varargs参数stringstream.我不知道我究竟能做到这一点,我想象的是:

#include <string>
#include <sstream>
template /* MUCH DEEP MAGIC HERE**/
MyException::MyException(/* MOAR DEEP MAGIC!!! **/) {
    std::stringstream ss;
    for(/** ITERATE THROUGH MORE MAGIC**/) {
        ss<</**FETCH MAGIC STUFF**/;
    }
    this->message = ss.str();
}
Run Code Online (Sandbox Code Playgroud)

c++ templates stringstream

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

我应该在哪里获得b2.exe和其他人用来构建boost的bjam.exe?

我有(再次)升级库的问题,特别是zlib/iostreams部分的问题,这是由于该升级版本中的(再次)错误 - zlib库中有一些更改没有反映到该升级版本.

我不是唯一一个遇到这个问题的人,但我似乎是唯一一个不知道bjam.exe每个人都在讨论什么的人,就好像它是Windows上的内置命令一样.显然,我自己过去使用过那个命令,但那是2年前的事.

我试过这个:http://sourceforge.net/projects/boost/files/boost-jam/3.1.18/但我得到的是更多被诅咒的源代码.

那我从哪里得到它?我现在在哪里可以得到它?

c++ boost

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