小编Ani*_*753的帖子

找出堆内存损坏的位置

我知道已经存在许多类似的问题和答案,但我无法解决我的问题.

在我的大应用程序中,堆在某处被破坏,我无法找到它.我也使用像gflags这样的工具,但没有运气.

我在下面的示例中尝试了gflags,它会破坏堆的目的:

char* pBuffer = new char[256];
memset(pBuffer, 0, 256 + 1);
delete[] pBuffer;
Run Code Online (Sandbox Code Playgroud)

第2行堆被覆盖但是如何通过gflags,windbg等工具找到它.可能我没有正确使用gflags.

c++ windows

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

如何创建播放一次并冻结在最后一帧的 GIF 图像

如何创建播放一次并冻结在最后一帧的 GIF 图像。我已经将循环属性设为1,所以第一个问题就解决了。但是动画结束后,gif 并没有冻结在最后一帧,而是回到第一帧。

gif

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

当我执行 std::vector = std::vector 时,std::vector 的旧值会发生什么变化

我有以下代码片段:

std::vector<std::string> v1;
v1.push_back("Hello");
v1.push_back("World");

std::vector<std::string> v2;
v2.push_back("Good");
v2.push_back("Bye");

v1 = v2;
Run Code Online (Sandbox Code Playgroud)

vector 的旧值会发生什么v1

  • 旧值会立即被破坏吗?

或者

  • 当vectorv1破坏时,它们会破坏。那么我怎样才能立即释放它们呢?

c++ vector c++11

5
推荐指数
2
解决办法
2038
查看次数

语义 UI 中的轮播不可用

我想知道,我在 Semantic UI 中没有找到轮播组件。我觉得这是一个非常常见和有用的组件。

我知道一种选择OWL Carouse。我不想使用 jQuery,但对于语义 UI,我将只包含 jQuery。其余的事情我想通过 Angular 实现。

我需要在不编写 jQuery 代码的情况下了解可能的选项。

angularjs semantic-ui

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

从隔离功能调用异步功能

我正在尝试从Isolate函数调用异步函数。

class IsolateExample {

  final ReceivePort port = new ReceivePort();

  IsolateExample(){
     Isolate.spawn(isolateFunction, port.sendPort);
  }

  static isolateFunction(SendPort port){
    print('inside isolateFunction');
    asyncFunction();
  }

  static void asyncFunction() async {
    print('inside asyncFunction');
  }
}
Run Code Online (Sandbox Code Playgroud)

以上类的用法:

final IsolateExample _isolate = new IsolateExample();
Run Code Online (Sandbox Code Playgroud)

上面的代码看起来很简单,但从未调用过asyncFunction。我不知道这为什么失败。

dart dart-isolates flutter

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

将 boost 编译为通用库(Intel 和 Apple Silicon 架构)

我正在尝试在 MacOS 上将 boost 库构建为 dylib。我需要为 Intel 架构和即将推出的 Apple Silicon (arm64) 架构构建它。

我下载了 boost 并运行了以下命令:

./bootstrap.sh
./b2 -address-model=64 architecture=combined -a
Run Code Online (Sandbox Code Playgroud)

lipo -archs总是显示生成的 dylibs 架构是x86_64.

我有 Xcode12 beta 和 MacOS Catalina 10.15.7,

如果我在 Xcode 中创建一个项目并archs arm64 x86_64在构建设置中进行设置,我可以构建一个示例通用库。

运行命令./b2 cxxflags="-arch arm64 -arch x86_64"失败并出现以下错误:

    "clang++" -x c++ -fvisibility-inlines-hidden -m64 -O3 -Wall -fvisibility=hidden -Wno-inline -arch arm64 -arch x86_64 -ftemplate-depth-255 -fvisibility=hidden -fvisibility-inlines-hidden -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I"." -c -o "bin.v2/libs/serialization/build/clang-darwin-12.0/release/link-static/threading-multi/visibility-hidden/polymorphic_xml_iarchive.o" "libs/serialization/src/polymorphic_xml_iarchive.cpp"

...failed clang-darwin.compile.c++ bin.v2/libs/serialization/build/clang-darwin-12.0/release/link-static/threading-multi/visibility-hidden/polymorphic_xml_iarchive.o...
clang-darwin.compile.c++ bin.v2/libs/serialization/build/clang-darwin-12.0/release/link-static/threading-multi/visibility-hidden/polymorphic_xml_oarchive.o
In file included from …
Run Code Online (Sandbox Code Playgroud)

c++ boost arm64 xcode12 apple-silicon

5
推荐指数
3
解决办法
2440
查看次数

在JSON对象中查找密钥存在

我有一个JSON字符串

String str = '{ "name":"John", "age":31, "city":"New York" }'
Run Code Online (Sandbox Code Playgroud)

在上述字符串中,city是可选键,并且可能不存在于JSON数据中。

我解码了json字符串

var jsonResponse = json.decode(str);
Run Code Online (Sandbox Code Playgroud)

我想了解jsonResponse对象是否存在城市密钥。

dart flutter

4
推荐指数
3
解决办法
5421
查看次数

如何使用 EM_JS 从 C++ 调用带参数的 javascript 方法

我刚刚完成了从 C/C++ 调用 JavaScript并按照他们的说明进行操作。我可以从 C++ 调用 Js 方法

C++

#include <iostream>
#include <string>

#include <emscripten.h>
#include <emscripten/bind.h>

EM_JS(void, call_js, (), {
    jsMethod();
});

bool callJsBack()
{
    call_js();
    return true;
}

EMSCRIPTEN_BINDINGS(module)
{
    emscripten::function("callJsBack", &callJsBack);
}
Run Code Online (Sandbox Code Playgroud)

杰斯

<script>
    var Module = {
        onRuntimeInitialized: function() {
            console.log('Module.callJsBack(): ' + Module.callJsBack());
        }
    };

    function jsMethod() {
        alert('I am a js method!');
    }
 </script>
Run Code Online (Sandbox Code Playgroud)

我想让 jsMethod() 参数化(想要在调用 jsMethod() 时从 C++ 传递字符串)。

function jsMethod(msg) {
    alert(msg);
}
Run Code Online (Sandbox Code Playgroud)

我没有找到任何例子或建议来实现这个要求。

c++ emscripten webassembly

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

使用 Isolate 处理大量任务

我有大约 1 万个需要按顺序计算的长时间运行的任务。为此,我决定使用 Isolates。问题是我应该每次为每个单独的任务创建 spawn Isolate 还是我应该只为所有任务的执行创建一个 Isolate。我不知道创建 Isolates 的成本有多高。

创建一个隔离并将其用于所有任务的源:

import 'dart:isolate';

class DataPacket {
  SendPort port;
  int result;
}

class SquareRootCalculator {

  final ReceivePort _masterPort = new ReceivePort();
  SendPort _workerPort;

  SquareRootCalculator() {
    Isolate.spawn(isolateFunction, _masterPort.sendPort).then((isolate) {
      _masterPort.listen((data) {
         if (_workerPort == null)
           _workerPort = data.port;
        else {
          print(data.toString());
        }
      });
    });
  }

  input(int n) {
    _workerPort.send(n);
  }
}

void isolateFunction(SendPort masterPort) {
  ReceivePort _workerPort = new ReceivePort();

  DataPacket packet = new DataPacket();
  packet.port = _workerPort.sendPort;
  packet.result = -1;
  masterPort.send(packet); …
Run Code Online (Sandbox Code Playgroud)

dart dart-isolates flutter

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

(Push + Dropdown) 按钮 wxWidgets

我需要一个带有按钮和下拉按钮的控件。

例如

此按钮在功能区控件中可用

中提供了类似的控件wxRibbonButtonBar,我无法在简单的 wxPanel 中使用它。

wxwidgets

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

从另一个小部件调用小部件的方法

我刚开始颤动,这是一个基本问题,但我无法解决。我创建了一个有状态小部件,我需要在单击按钮时调用 setState() 方法。该按钮不是这个有状态小部件的一部分。该按钮位于应用程序的页脚中。

完整的应用代码:

import 'package:flutter/material.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  build(BuildContext context) {
    return new MaterialApp(
        title: "My app title",
        home: new Scaffold(
          appBar: new AppBar(
            title: new Text("My App"),
            backgroundColor: Colors.amber,
          ),
          body: new Container(
            child: new Center(
              child: new MyStateFullWidget(),
            ),
          ),
          persistentFooterButtons: <Widget>[
            new FlatButton(
              onPressed: () {
                // I need to call the update() of MyStateFullWidget/MyStateFullWidgetState class
              },
              child: new Text("Click Here"),
              color: Colors.amber,
              textColor: Colors.white,
            ),
          ],
        )); …
Run Code Online (Sandbox Code Playgroud)

flutter

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

从动态创建的缓冲区中删除子缓冲区

char* ptr = new char[512]; // also malloc() can be used
ptr = ptr + 10;
delete[] ptr; // free() if memory allocated by malloc
Run Code Online (Sandbox Code Playgroud)

正如我们所知,在分配内存时new和malloc在某处保存了分配的内存大小(在哪里?取决于编译器的实现).在释放内存时,delete和free()使用此保存的大小值.在我的情况下,我将起始指针移动了10个字节.我的问题是:内存泄漏的情况?未定义的行为?或者它会尝试在512之后释放下一个额外的10个字节?

c++

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