|
|
1
3
您正在使用TidyBuffer结构的旧定义。新结构更大,因此当调用allocate方法时,它将覆盖inputaray2的堆栈位置。新定义是:
|
|
|
2
2
值得一提的是,我们在工作时试着整理一下,然后换成了htmlagilitypack。 |
|
|
3
0
尝试将TidyBuffalloc声明更改为:
注意charset.ansi加法和“int allocsize”(而不是uint)。 另外,请参见 sample code 例如,在C中使用HTML Tidy。 在您的示例中,如果inputtml很大,例如50k,则inputaray和inputaray2也将分别为50k。 然后您还尝试在tidybuffalloc调用中分配65K。 如果指针未正确初始化,则很可能正在使用随机的.NET堆地址。因此,覆盖部分或所有看似不相关的变量/缓冲区。幸运的是,或者您已经分配了大量的缓冲区,您没有重写可能导致无效内存访问错误的代码块。 |
|
|
Mike Bruno · 访问模拟帐户的私钥 9 年前 |
|
John · 通过P/Invoke使用回调和堆对象的安全方法 10 年前 |
|
|
Residuum · 带有P/Invoke和指针的泛型 10 年前 |
|
|
hl3mukkel · 约束与使用SafeHandle的抽象类 11 年前 |