управляемый код C ++ не находит реализацию функции - PullRequest
0 голосов
/ 14 августа 2011

У меня есть 3 файла:

  1. основной файл ".h" - содержит реализацию простой WinForm (с управлением c ++)
  2. свернуть / file.h
  3. свернуть / file.cpp

(file.h и file.cpp не представляют класс)

У меня есть функция "func ()", объявление которой находится в fold / file.h, а ее реализация - в fold / file.cpp.

В main.h

есть файл «fold / file.h».

Когда я вызываю func () из main.h, я получаю сообщения об ошибках: «Unresolved token» и «Unresolved external error». когда я помещаю реализацию func () в fold / file.h, ошибки не возникает.

В чем проблема?

спасибо!

1 Ответ

1 голос
/ 14 августа 2011

когда я помещаю реализацию func () в fold / file.h, ошибки нет.

Собираете ли вы все исходные файлы? Я подозреваю, что это не так, потому что когда вы переносите определения в заголовочный файл и включаете его в основной исходный файл, препроцессор фактически копирует его в основной исходный файл. Таким образом, при компиляции и компоновке основного модуля перевода компилятор и компоновщик могут видеть как объявления, так и определения соответственно.

...