小编Rya*_*yan的帖子

HTML5画布鼠标滚轮事件

我似乎无法在Firefox的HTML5画布中获取onMouseWheel事件.以下代码段在Chrome和IE9中按预期工作,但在Firefox中我只收到click事件:

<!DOCTYPE html>
<html>
<body>
<canvas id="TestCanvas" tabindex="2" onmousewheel="window.alert('wheel!')" onclick="window.alert('click!')" style="width:90%;height:90%;margin-left:auto;margin-right:auto border:1px solid green;"></canvas>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

根据我见过的规范,onMouseWheel应该是HTML5元素的标准事件.难道我做错了什么?

firefox html5 canvas

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

如何获取由 vector::reserve() 分配的缓冲区的地址?

我有一个 std::vector 值,我知道其最大大小,但实际大小在使用过程中会有所不同:

void setupBuffer(const size_t maxSize) {
  myVector.reserve(maxSize);
}

void addToBuffer(const Value& v) {
  myVector.push_back(v);

  if (myVector.size() == maxSize) {
    // process data...
    myVector.clear();
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,在 setupBuffer 中,我需要获取指向 myVector 数据开头的指针。我正在使用第三方库,我必须预先缓存该指针,以便在“处理数据...”部分期间进行的调用中使用。

void setupBuffer(const size_t maxSize) {
  myVector.reserve(maxSize);

  cachePtr(&(myVector[0])); // doesn't work, obviously
}
Run Code Online (Sandbox Code Playgroud)

我不想预先 resize() 向量,因为我想使用 vector.size() 来表示添加到向量中的元素数量。

那么,有什么方法可以在分配(reserve())之后但在它有任何元素之前获取指向向量缓冲区的指针吗?我想象缓冲区存在(并且只要我限制 push_back'd 值的数量就不会移动)......也许这不能保证?

c++ stl vector

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

C++/CLI终结器和操作符

在以下示例中,我得到:

error C2300: 'UnmanagedClass' : class does not have a finalizer called '!SmartPointer'
Run Code Online (Sandbox Code Playgroud)

如果我删除operator->,则此错误消失.有人可以解释为什么会这样吗?

// Unmanaged class.
class UnmanagedClass { };

public ref class SmartPointer {
public:
    SmartPointer(UnmanagedClass* u) : m_ptr(u) { }
    ~SmartPointer() { this->!SmartPointer(); }
    !SmartPointer() { delete m_ptr; }

    // This line triggers C2300.
    UnmanagedClass* operator->() { return m_ptr; }
};

int main() {
    SmartPointer^ s = gcnew SmartPointer(new UnmanagedClass);
}
Run Code Online (Sandbox Code Playgroud)

.net managed-c++ c++-cli

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

标签 统计

.net ×1

c++ ×1

c++-cli ×1

canvas ×1

firefox ×1

html5 ×1

managed-c++ ×1

stl ×1

vector ×1