小编Dan*_*pez的帖子

如何检查字节数组是否是有效图像?

我知道没有用于检查的.Net函数,但是在我使用字节数组之前,是否存在一种算法或简单有效的方法来检查字节是否是有效图像.我需要这个,因为我正在向不断收听客户端的服务器发送不同的命令,其中一个命令是获取服务器计算机的屏幕截图.

c# image bytearray .net-4.0

19
推荐指数
2
解决办法
2万
查看次数

未定义的对新运算符的引用

在我开始编程PSP自制程序应用程序之前,从未见过这个链接器错误.无论如何,我正在制作一个快板游戏,在这种情况下我需要发射射弹或导弹,我需要使用动态和通用阵列.但是我的链接器抱怨对new运算符有一个未定义的引用.下面将是完整的源代码,makefile和错误详细信息.

错误详情:

1>------ Build started: Project: PSP Asteroids, Configuration: Debug Win32 ------
1>  psp-g++ -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -fno-exceptions -fno-rtti -D_PSP_FW_VERSION=150   -c -o main.o main.cpp
1>  psp-gcc -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150  -L. -LC:/pspsdk/psp/sdk/lib   main.o -lalleg -lpspgu -lpspirkeyb -lm -lpsppower -lpspaudio -lpsprtc  -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o main.elf
1>  main.o: In function `std::vector<Missile*, std::allocator<Missile*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<Missile**, std::vector<Missile*, std::allocator<Missile*> > >, Missile* const&)':
1>  main.cpp:(.text._ZNSt6vectorIP7MissileSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_[_ZNSt6vectorIP7MissileSaIS1_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS1_S3_EERKS1_]+0xb8): undefined …
Run Code Online (Sandbox Code Playgroud)

c++ g++ vector linker-errors

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

实现Cannon算法

背景

我必须实现Cannon算法,这是一种并行算法,用于乘以矩形方形的矩阵,并且维度可以被处理器数量的平方根整除.我写了这段代码,它运行得非常好但是在没有崩溃的情况下运行只是故事的一半.它没有正确地将A x B乘以新的矩阵C. 这是代码,请帮助我,引导我帮助我解决我做错了什么.显而易见,这是家庭作业.

void shift_left(datatype** mat, int s, int row, int n, int amount) {
    datatype* temp_buffer = malloc(sizeof(datatype) * n);
    for(int col = 0; col < n; col++) {
        datatype temp = mat[row][(col+amount)%s];
        temp_buffer[(col+amount)%s] = mat[row][col];
        temp_buffer[col] = temp;
    }
    memcpy(mat[row], temp_buffer, n);
    free(temp_buffer);
}

void shift_up(datatype** mat, int s, int col, int n, int amount) {
    datatype* temp_buffer = malloc(sizeof(datatype) * n);
    for(int row = 0; row < n; row++) {
        datatype temp …
Run Code Online (Sandbox Code Playgroud)

c algorithm matrix-multiplication

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

如何以编程方式检查变量是否接近x?

是否可以检查变量(变量可以是float,double或int)是否接近某个数字.我做了一些谷歌搜索,但它没有任何结果.

例如,当n ^ x为x变得更负时,它接近零.

c# floating-point double int limits

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

Android JavaCV困境,在创建IplImage时,方法'draw'内部抛出NoClassDefFoundError

我正在使用带有用于Android的预构建OpenCV库的JavaCV库.我想我已经以正确的方式设置了Eclipse,因为我已经将jar包括javacv.jar和javacpp.jar.另外,java-cv-android-arm.jar,在我的项目中.一切都编译好,没有错误,警告,任何应该怀疑在运行时会出错的东西.但是我得到下面这个方法体中抛出的NoClassDefFOundError异常:

@Override
    public void draw(Canvas canvas)
    {
    try
    {
        canvas.drawColor(Color.BLUE);
        if (current != null)
        {
        int width = current.getWidth();
        int height = current.getHeight();
        IplImage i = IplImage.create(width, height, IPL_DEPTH_8U, 1); // I assume here is where the exception gets thrown
        ByteBuffer buffer = i.getByteBuffer();
        current.copyPixelsToBuffer(buffer);
        // We need a grayscale image in order to do the recognition, so
        // we
        // create a new image of the same size as the original one.
        IplImage grayImage = IplImage.create(i.width(), i.height(),
            IPL_DEPTH_8U, 1); …
Run Code Online (Sandbox Code Playgroud)

java android opencv noclassdeffounderror javacv

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

如何找到用于内存编辑过程的应用程序的起始地址?

我想知道如何从头到尾查找应用程序的有效地址,因为我想知道如何使用内存编辑应用程序(例如记事本)。我是否需要反编译应用程序并查看汇编代码或机器代码。因为我看到人们总是为minesweeper和某些PC视频游戏等应用程序制作mod。

PS I将使用编程语言C#和Win32函数执行内存编辑。

c# winapi memory-editing

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

未明确引用'main'

你必须喜欢链接器错误*讽刺*.无论如何,我正在使用pspsdk附带的allegro的psp端口开发一个psp游戏.在我修复了所有其他未定义的引用之后,这个引起了我的注意.完整的错误消息和makefile和代码如下:

错误详情

1>------ Build started: Project: PSP Pong, Configuration: Debug Win32 ------
1>  psp-g++ -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -fno-exceptions -fno-rtti -D_PSP_FW_VERSION=150   -c -o main.o main.cpp
1>  psp-gcc -I. -IC:/pspsdk/psp/sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150  -L. -LC:/pspsdk/psp/sdk/lib   main.o -lalleg -lpspgu -lpspirkeyb -lm -lpsppower -lpspaudio -lpsprtc  -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o main.elf
1>  c:/pspsdk/bin/../lib/gcc/psp/4.3.5/../../../../psp/lib/crt0.o: In function `_main':
1>  ../../../../pspsdk/src/startup/crt0.c (86) : undefined reference to `main'
1>  C:\pspsdk\bin\make: *** …
Run Code Online (Sandbox Code Playgroud)

c++ makefile allegro linker-errors

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

为什么这个类没有声明任何纯虚拟成员函数抽象?

以下课程是如何Game抽象的?我如何使它具体化,以便我可以创建它的实例?

game.h

#include <JApp.h>
#include <JGE.h>

class Game: public JApp
{    
private: 
    JGE* Engine;
    int x, y, x2, y2;
public:
    Game(JGE *engine);
    virtual ~Game();
    virtual void Create();
    virtual void Destroy();
    virtual void Update();
    virtual void Render();
};
Run Code Online (Sandbox Code Playgroud)

main.cpp中

//Other headers
#include "game.h"
int main(void)
{
    JGE* engine = NULL;
    SetupCallbacks();
    engine = JGE::GetInstance();
    engine->printf("Starting Game!");
    Game* g = new Game(engine); // Error 'Game is an abstract type 
    engine->SetApp(g);
    engine->Run();
    engine->Destroy();

    sceKernelExitGame();
}

Game::Game(JGE* engine) : JApp(engine)
{
    Engine …
Run Code Online (Sandbox Code Playgroud)

c++ abstract-class virtual-functions pspsdk pure-virtual

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

试图挂钩窗口的窗口过程.SetWindowsHookEx失败返回NULL HHOOK和GetLastError返回错误代码126

摘要

我正在创建一个简单的应用程序,允许用户选择包含顶级窗口的进程.用户首先键入本机DLL(不是托管DLL)的路径.然后,用户键入将在钩子过程中调用的方法的名称.该方法不能返回值,必须是无参数.然后他们是一个挂钩的按钮.

问题

我能够检索执行挂钩的库的模块句柄.另外,我还能够获得用户想要使用的模块句柄库,其中包含他/她想要挂钩的方法.另外,我能够接收程序解决用户想要挂钩的方法等.

换句话说,它们不在返回无效句柄上.除了钩子的把手(HHOOK)

但是SetWindowsHookEx返回NULL HHOOK,而GetLastError返回错误代码126(ERROR_NO_MOD_FOUND).

可能的理论为什么我得到ERROR_MOD_NOT_FOUND

  • 全局钩子的数量有限制,因为我在某个地方与某个人在钩子时遇到同样的错误.
  • 我没有获得将执行挂钩的DLL的正确模块句柄.但是我再次尝试了许多不同的方法来获取库HMODULE/HINSTANCE,但都失败并出现相同的错误.

WinHooker.cpp

#include "winhooker.h"
HMODULE GetCurrentModule()
{ 
  HMODULE hModule = NULL;
  GetModuleHandleEx(
    GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
    (LPCTSTR)GetCurrentModule,
    &hModule);

  return hModule;
}
LRESULT (WINAPI hookProc)(int nCode, WPARAM wParam, LPARAM lParam);
void recievedCallback(WIN32Hooker* hooker);
WIN32Hooker* current;

            WIN32Hooker::WIN32Hooker(HINSTANCE* hInstance, Callback callback)
            {
                if (!hInstance)
                {
                    HMODULE hModule = GetCurrentModule();
                    hInstance = &hModule;
                }
                this->callback = callback;
                this->hInstance = hInstance;
                return;
            }
            void WIN32Hooker::Hook(DWORD threadToHook)
            {
                recievedCallback(this);
                this->hhk = SetWindowsHookEx(WH_CALLWNDPROC, hookProc, *this->hInstance, threadToHook);
                DWORD errorCode = GetLastError(); // …
Run Code Online (Sandbox Code Playgroud)

c++ winapi setwindowshookex

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

EnumProcessModulesEx 无法返回错误代码 299 (ERROR_PARTIAL_COPY)

我正在调用该函数EnumProcessModulesEx,但它失败了。我在 64 位机器上运行。这是下面的代码:

wchar_t* dest = new wchar_t[100];
int index = SendMessage(processes, LB_GETCURSEL, 0, 0);
SendMessage(processes, LB_GETTEXT, index, (LPARAM)dest);
HMODULE module;
unsigned long cbneeded;
EnableTokenPrivilege(hWnd, SE_DEBUG_NAME);
HANDLE h = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, _wtoi(dest));
int errorcode = GetLastError();
BOOL ret = EnumProcessModulesEx(h, &module, sizeof module, &cbneeded, LIST_MODULES_ALL);
int err = GetLastError();
wchar_t* name = new wchar_t[MAX_PATH];
GetModuleBaseName(h, module, name, sizeof name);
MessageBox(hWnd, name, L"Process Name", 0);
delete dest;
delete name;
Run Code Online (Sandbox Code Playgroud)

c++ 64-bit winapi getlasterror windows-7

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

我的简单字符串实现错了

我正在创建我在.Net框架中的String类的简单实现.唯一的区别是,如果你知道我的意思,那就不那么含糖了.无论如何,除了+运算符的重载运算符之外,我得到了所有工作; 最终显示垃圾缓冲区.我还没有实现异常处理或垃圾收集.如果你都很好奇,下面是代码和输出.

#include <iostream>
using namespace std;
using namespace CDataTypes;
int _tmain(int argc, _TCHAR* argv[])
{
    String* str = new String();
    *str = "1 ";
    String* str2 = new String();
    *str2 = "2 ";
    String* str3 = new String();
    *str3 =  "3 ";
    String* str4 = new String("\nEnd!\n");
    cout << str->GetText() << str2->GetText() << str3->GetText() << str4->GetText() << endl;
    const char* s = *str + "H"; // Here is where it goes wrong!
    String* cat = new String();
    cout << …
Run Code Online (Sandbox Code Playgroud)

c++ string

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

如何从桌面的句柄中获取Form对象?

我想知道是否有可能获得桌面的表格.我试图从桌面获取hWnd并使用Form.FromHandle来获取表单.但它总是返回null.所以我认为这是不可能的; 如果有可能,有人可以给我看一个示例代码.以下代码不起作用:

 hWnd = GetDesktopWindow();
 desktop = Form.FromHandle(hWnd) as Form;
 System.Diagnostics.Debugger.Break();
Run Code Online (Sandbox Code Playgroud)

PS有人也可以解释我在这里做错了什么.

.net c# desktop hwnd visual-studio-2010

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