Ошибка определения функции C ++ (передача параметров)

0

Я пытаюсь назвать свою шаблонную функцию без успеха :(

Мой memaddr.h:

#ifndef __MEM_ADDR_WRITER__
#define __MEM_ADDR_WRITER__

#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>

namespace MemAddr {

    template <typename WRITABLE>
    int WriteMemoryAddress(const char* process, unsigned long address, WRITABLE value);

}

#endif

Вызов:

byte value = 0xEB;
MemAddr::WriteMemoryAddress("jamp.exe", 0x004392D2, value);

Сообщение об ошибке:

undefined reference to 'int MemAddr::WriteMemoryAddress<unsigned char>(char const*, unsigned long, unsigned char)'

Ответ: Шаблоны должны быть определены в заголовках.. (@Shaggi)

Теги:
function
parameter-passing
parameters

1 ответ

0

Шаблон функции

template <typename WRITABLE>
int WriteMemoryAddress(const char* process, unsigned long address, WRITABLE value);

не определен. Включите его определение в файл заголовка (memaddr.h):

template <typename WRITABLE>
int WriteMemoryAddress(const char* process, unsigned long address, WRITABLE value)
{
    /* do something */
}

Шаблон функции будет создан один раз, когда вы его используете.

  • 0
    пожалуйста, будьте более конкретны, шаблон встроен в c ++ cplusplus.com/doc/tutorial/templates
  • 0
    отредактировано и расширено. Посмотри, ответит ли это тебе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню