[C++]Problem mit WinSock2 und Detours

01/02/2013 17:39 Conrew#1
Hallo liebe Epvpler,

ich bin grade dabei eine dll zu schreiben die eine Connect Funktion umschreibt mittels Detours 1.5 und WinSock2 ich bekomme aber immer einen Error dem ich nichtt verstehe.

Hier:
Code:
#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#include "detours.h"

#pragma comment(lib, "Detours.lib")
#pragma comment(lib, "ws2_32.lib")

typedef int (WINAPI * trampoline_connect)(SOCKET s, const sockaddr *name, int namelen);
trampoline_connect orginal_connect;


int WINAPI my_connect(SOCKET s, const sockaddr *name, int namelen)
{
	sockaddr_in si;
	memcpy(&si, name, sizeof(sockaddr_in));

	si.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
	return orginal_connect(s, (sockaddr*)&si, sizeof(sockaddr_in));
}

BOOL WINAPI DllMain(HMODULE hDll, DWORD dwReason, LPVOID lpReserved)
{
	switch(dwReason)
	{
		case DLL_PROCESS_ATTACH:
		{
			orginal_connect = (trampoline_connect)DetourFunction((PBYTE)GetProcAddress(GetModuleHandle("ws2_32.dll"),"connect"), (PBYTE)my_connect);			
		}
	}

	return TRUE;
}
und hier der Error:
Code:
1>------ Erstellen gestartet: Projekt: warrock_hock, Konfiguration: Debug Win32 ------
1>  warrock_hock.cpp
1>c:\users\phil\documents\visual studio 2010\projects\warrock_hock\warrock_hock\warrock_hock.h(28): error C2664: 'GetModuleHandleW': Konvertierung des Parameters 1 von 'const char [11]' in 'LPCWSTR' nicht möglich
1>          Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
1>c:\users\phil\documents\visual studio 2010\projects\warrock_hock\warrock_hock\warrock_hock.h(28): error C3861: "DetourFunction": Bezeichner wurde nicht gefunden.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
01/02/2013 18:05 Eerox#2
stell dein projekt auf "multibyte". bei dem anderen fehler liegt es daran , das du den header nicht richtig eingebunden hast. er kennt diese funktion nicht
01/02/2013 18:12 Conrew#3
Quote:
Originally Posted by Eerox View Post
stell dein projekt auf "multibyte". bei dem anderen fehler liegt es daran , das du den header nicht richtig eingebunden hast. er kennt diese funktion nicht
ok danke schonmal,

Ok das mit Multibyte hat geklappt Danke
wie binde ich den Header ?
01/03/2013 00:57 Eerox#4
Quote:
Originally Posted by Conrew View Post
ok danke schonmal,

Ok das mit Multibyte hat geklappt Danke
wie binde ich den Header ?
kommt drauf an womit du arbeitest. geh mal in deine projekteigenschaften . dort müsste sowas wie include verzeichnis stehen.
01/03/2013 05:46 Conrew#5
Quote:
Originally Posted by Eerox View Post
kommt drauf an womit du arbeitest. geh mal in deine projekteigenschaften . dort müsste sowas wie include verzeichnis stehen.
Super ich habs hingekriegt. Danke Kriegst ein Thanks :)