我没什么问题.我已经将DLL加载到进程中(它不是我的),我必须在其中使用函数.我有这个功能的偏移,所以我只需要获取DLL地址并将其添加到偏移量以获得该功能.GetModuleHandle()返回HMODULE变量,但实际上我不知道是什么HMODULE.它是加载DLL的地址还是某种其他标记?
如果它不是加载DLL的地址,我怎么能得到这个地址?我希望我能说清楚.
我想知道mapc ++中的STL 是否具有连续的内存 - 或者是分配给堆的内存?
我在大文本文件中编写抄袭检测应用程序.在阅读了很多关于它的文章后,我决定使用Winnowing算法(使用Karp-Rabin滚动哈希函数),但我遇到了一些问题.
数据:
我有两个简单的文本文件 - 第一个是较大的文件,第二个是第一个的一个段落.
使用的算法:
这是我用来从所有哈希中选择我的指纹的算法.
void winnow(int w /*window size*/) {
// circular buffer implementing window of size w
hash_t h[w];
for (int i=0; i<w; ++i) h[i] = INT_MAX;
int r = 0; // window right end
int min = 0; // index of minimum hash
// At the end of each iteration, min holds the
// position of the rightmost minimal hash in the
// current window. record(x) is called only the
// first time …Run Code Online (Sandbox Code Playgroud) 我正在努力学习逆向工程,而且我仍然坚持这个小东西.我有这样的代码:
.text:10003478 mov eax, HWHandle
.text:1000347D lea ecx, [eax+1829B8h] <------
.text:10003483 mov dword_1000FA64, ecx
.text:10003489 lea esi, [eax+166A98h]<------
.text:1000348F lea edx, [eax+11FE320h]
.text:10003495 mov dword_1000FCA0, esi
Run Code Online (Sandbox Code Playgroud)
我想知道,它在C或C++中看起来如何?特别是箭头标出的两个指令.HWHandle是变量,它保存从GetModuleHandle()函数返回的值.更有趣的是,这条指令下面的几行dword_1000FCA0用作函数:
.text:1000353C mov eax, dword_1000FCA0
.text:10003541 mov ecx, [eax+0A0h]
.text:10003547 push offset asc_1000C9E4 ; "\r\n========================\r\n"
.text:1000354C call ecx
Run Code Online (Sandbox Code Playgroud)
这将在我的游戏控制台中绘制此文本.伙计们,你有什么想法吗?
我用OpenGL用C++编写了一个简单的程序.我需要的是在两个文件中有几个全局变量 - main.cpp和funcs.cpp - 它们将保持相同的值.当我试图在funcs.h中声明这些变量时(也包含在main.cpp中)我遇到了这个错误:
1>main.obj : error LNK2005: "int myVariable" (?myVariable@@3HA) already defined in funcs.obj
1>Path to my program : fatal error LNK1169: one or more multiply defined symbols found
Run Code Online (Sandbox Code Playgroud)
这很明显,因为它会在funcs.cpp和main.cpp中创建变量.当我尝试以这种方式声明变量时:
//funcs.cpp
int myVariable;
//main.cpp
int myVariable;
Run Code Online (Sandbox Code Playgroud)
而且它们都是全局的我得到与上面完全相同的错误.我感兴趣的是两个变量在相反的文件中都不可见,那么为什么有相同名称的变量是错误的呢?据我所知,没有可能myVariable从main.cpp 引用funcs.cpp并反向.我的第二个问题是 - 解决我的问题的最佳方法是什么,因为我所做的只是重命名了一些变量(有很多变量)并在funcs.cpp中添加函数setNewValue(int newValue),我可以从main.cpp中调用它们但说实话 - 我并不为此感到骄傲.
我使用Microsoft Visual Studio 2012,C++/OpenGL.