Ir para conteúdo

Fernando Sagaz

Members
  • Total de itens

    1
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Fernando Sagaz

  1. Bom dia, eu tenho a source da dll que faz algumas modificações no client do jogo, extendendo a quantidade de imagens e effeitos que o client normalmente não suportaria e após eu compilar, tento executar o client e aparece o seguinte erro: Não foi possível localizar o ponto de entrada do procedimento DirectDrawCreate na bilbioteca de vínculo dinâmico... Já linkei diversas libs no projeto, como: ddraw.lib d3d9.lib.. diversas libs em Microsoft DirectX SDK de diversas versões desde 2005 à 2010, e nada muda. No entanto, não há erros ao compilar o projeto. Aqui está uma parte do arquivo dllmain.cpp em que chama o tal DirectDrawCreate: static int InitMain() { char systemDirectory[MAX_PATH] = {}; char systemDDrawDllPath[MAX_PATH] = {}; GetSystemDirectory(systemDirectory, MAX_PATH); sprintf(systemDDrawDllPath, "%s\\ddraw.dll", systemDirectory); orig_ddraw = LoadLibrary(systemDDrawDllPath); if(!orig_ddraw) { MessageBox(NULL, "Cannot load system 'ddraw.dll'.", PROJECT_NAME, MB_OK|MB_ICONERROR); exit(-1); } #ifdef __CONFIG__ loadConfig(); HRESULT result = Init(should_use_extended, should_use_alpha); #else HRESULT result = Init( #ifdef __EXTENDED_FILE__ true, #else false, #endif #ifdef __ALPHA_SPRITES__ true #else false #endif ); #endif if(result != S_OK) { if(result == E_OUTOFMEMORY) { MessageBox(NULL, "Failed to allocate renderer memory.", PROJECT_NAME, MB_OK|MB_ICONERROR); exit(-1); } else { MessageBox(NULL, "This version of client is unsupported.", PROJECT_NAME, MB_OK|MB_ICONERROR); exit(-1); } } return 1; } extern "C" { __declspec(dllexport) HRESULT WINAPI DirectDrawCreate(void* lpGUID, void* lplpDD, void* pUnkOuter) { FARPROC ddcreate = GetProcAddress(orig_ddraw, "DirectDrawCreate"); if(!ddcreate) return E_INVALIDARG; return ((HRESULT (WINAPI *)(void*, void*, void*))(DWORD)(ddcreate))(lpGUID, lplpDD, pUnkOuter); } } extern "C" { BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpReserved) { switch(dwReason) { case DLL_PROCESS_ATTACH: return InitMain(); case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return 1; } } Alguém poderia me ajudar com este problema?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.