小编use*_*556的帖子

我可以在C++中将类作为对象处理

这是我想要实现的:我有一个类的列表(Class1到Classn)继承自主类我希望能够实现任何n类的对象,而无需做大的开关案例(或同等学历).类似的东西:

static ClassPointerType const * const ArrayOfClassTypes[]={ Class1, Class2, .. Classn }; 

static Class *GetObjectOfClass(int i)
{
  return new ArrayOfClassTypes[i](some parameters for the constructor);
}
Run Code Online (Sandbox Code Playgroud)

您可以在其他OO语言中执行此操作,例如Delphi,您可以使用TClass类型并获取对象的类...但我无法在C++中找到等效的功能.

c++ class

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

如何在emscripten中使用canvas

我正在开发一个webassembly程序。我可以使用emscripten_set_canvas_size设置画布大小(直到我读到我需要切换到新的API,因为这个API将会被贬值)...

但是我的问题是:如何设置画布上的像素?我的程序为画布生成32位颜色的数组,我需要将这些位从内部存储器传输到画布。我怎样才能做到这一点?

另外,如果我只能获取指向画布数据的内存指针,则可以直接在所述内存中写...

我希望,如果可能的话,无需重新排序至任何其他API(GL,SDL ...),就可以将颜色尽快转移到画布上……仅此而已。

理想情况下,我正在按照以下方式寻找一个简短的示例程序:

#include <...>
  uint32_t screen[320*320];
 static void main_loop()
 {
   memset(screen, 0, 320*320*4); // Clear screen
   for (int x=0; x<320; x++)
     for (int y=0; y<320; y++)
       screen[320*(x|y) + (x&y)]= 0xffffff; // set pixel(x or y, x and y) to white... (will draw a serpinsky triangle)
   Copy_ToCanvas(screen);  // THIS IS THE FUNCTION THAT I AM LOOKING FOR
 }

int main()
{
  emscripten_set_canvas_size(320, 320);
  emscripten_set_main_loop(main_loop, 100, true);
  return 0;
} 
Run Code Online (Sandbox Code Playgroud)

谢谢,西里尔

canvas emscripten webassembly

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

Windows 10 上已安装应用程序的列表

我正在尝试以编程方式列出我的 win10 系统上所有已安装的应用程序。
基本上,我试图获取当您在资源管理器窗口中键入“shell:appsFolder”时可以看到的列表。

这是我使用的代码:

HRESULT hr;
IShellFolder *psParent= nullptr, *psApps= nullptr;
LPITEMIDLIST pidlSystem = NULL;
hr = SHGetFolderLocation(NULL, CSIDL_SYSTEM, NULL, NULL, &pidlSystem); // get root pidl which is needed to get the parrent of our app folder
LPITEMIDLIST pidlApps= NULL;

if (!SUCCEEDED(hr= SHGetKnownFolderItem(FOLDERID_AppsFolder, KF_FLAG_DEFAULT, NULL, IID_IShellItem , (void**)&pidlApps)))
    goto done;  // get pidl for apps folder

if (!SUCCEEDED(hr=SHBindToParent(pidlSystem, IID_IShellFolder, (void **) &psParent, (LPCITEMIDLIST*)&pidlApps)))
    goto done; // Get shell folder of parrent, which is needed to get shell folder of …
Run Code Online (Sandbox Code Playgroud)

c c++ windows winapi

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

标签 统计

c++ ×2

c ×1

canvas ×1

class ×1

emscripten ×1

webassembly ×1

winapi ×1

windows ×1