Сосуществование кода на С и С++
Есть код написанный на С (*.С и *.H файлы).
Пытаюсь включить их в код на С++.
Вписываю в СРР файл include и получаю сразу около 300
ошибок.
Что я не так делаю ?
Помогите разобраться с такой проблемой.
Есть код написанный на С (*.С и *.H файлы).
Пытаюсь включить их в код на С++.
Вписываю в СРР файл include и получаю сразу около 300
ошибок.
Что я не так делаю ?
Покажи свои ошибки.
Покажи свои ошибки.
common.h(23) : error C2146: syntax error : missing ';' before identifier 'dwProcessId'
common.h(23) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(23) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(24) : error C2146: syntax error : missing ';' before identifier 'dwInheritedFromProcessId'
common.h(24) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(24) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(25) : error C2146: syntax error : missing ';' before identifier 'flags'
ccommon.h(25) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(25) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(26) : error C2146: syntax error : missing ';' before identifier 'hwnd'
common.h(26) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(26) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(27) : error C2146: syntax error : missing ';' before identifier 'ProcessName'
common.h(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(27) : error C2065: 'MAX_PATH' : undeclared identifier
common.h(27) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(28) : error C2146: syntax error : missing ';' before identifier 'WindowTitle'
common.h(28) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(28) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(33) : error C2146: syntax error : missing ';' before identifier 'numtasks'
common.h(33) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(33) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
common.h(40) : error C2065: 'LPGetTaskList' : undeclared identifier
common.h(40) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
ccommon.h(40) : error C2143: syntax error : missing ';' before '('
common.h(40) : error C2226: syntax error : unexpected type 'PTASK_LIST'
common.h(40) : error C2059: syntax error : ')'
common.h(41) : error C2065: 'LPEnableDebugPriv' : undeclared identifier
common.h(41) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Помогите разобраться с такой проблемой.
Есть код написанный на С (*.С и *.H файлы).
Пытаюсь включить их в код на С++.
Вписываю в СРР файл include и получаю сразу около 300
ошибок.
Что я не так делаю ?
С диким количеством ошибок разобрался.
просто нужно было переместить инклюды в хидер.
но что делать с этим :
[COLOR=blue]Linking...
test.obj : error LNK2019: unresolved external symbol "int __cdecl KillByName(char *)" (?KillByName@@YAHPAD@Z) referenced in function _main[/COLOR]
С диким количеством ошибок разобрался.
просто нужно было переместить инклюды в хидер.
но что делать с этим :
[COLOR=blue]Linking...
test.obj : error LNK2019: unresolved external symbol "int __cdecl KillByName(char *)" (?KillByName@@YAHPAD@Z) referenced in function _main[/COLOR]
найти хидер с прототипом данной функции и заинклюдить данный хидер где используется данная ыункция. и затем пересобрать(rebuild) проект
найти хидер с прототипом данной функции и заинклюдить данный хидер где используется данная ыункция. и затем пересобрать(rebuild) проект
Но я ведь так и делаю :x
И что ещё интересно что когда main находится не в *.CPP а в *.C прога строится нормально.
Что происходит ???
найти хидер с прототипом данной функции и заинклюдить данный хидер где используется данная ыункция. и затем пересобрать(rebuild) проект
нет, линкер не нашел реализацию, а не прототип
проверь, не отличаются ли чем-либо прототипы от реализации.
нет, линкер не нашел реализацию, а не прототип
проверь, не отличаются ли чем-либо прототипы от реализации.
А что именно нужно проверить ?
Сами файлы вроде в порядке.
Никаких синтаксических ошибок не найдено.
А что именно нужно проверить ?
Сами файлы вроде в порядке.
Никаких синтаксических ошибок не найдено.
попробуй добавить к прототипу extern "C"
попробуй добавить к прототипу extern "C"
Это хорошая мысль.
Если кому интересно подробности здесь:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/basic_17.asp?frame=true