Добрый день! Научился писать на masm dll-ки. Хочется поиспользовать их в программах на С. Подскажите пожалуйста как правильно их (lib- ы )подключить в проект VC++ 6.0 ? Если так , ... Код (Text): #include "stdafx.h" #pragma comment(lib,"[b]моя_библиотека[/b].lib" ) int main(int argc, char* argv[]) { printf("Hello World!\n"); [b]моя_функция[/b](); return 0; } ... то error C2065: 'моя_функция' : undeclared identifier Спасибо.
_animaTOR_ Компилятор ясно пишет: undeclared identifier, т.е. неопределённый идентификатор (имя функции). О том как правильно определить этот самый идентификатор неоднократно писали в форуме.
... спасибо за ответы, но, не сочтите за Безтактность, все-таки подскажите где об этом писалось на форумах. Я тут уже и в Project -> Settings -> Link -> ... ee добавил - не достаточно. И по форуму искал по словосочетанию - "прилинковать lib"? нет ничего. И прототип (по указанию Asterix-а ) в виде строки : Код (Text): #include "stdafx.h" #pragma comment(lib,"моя_lib.lib" ) [b]void моя_функция (void);[/b] int main(int argc, char* argv[]) { printf("Hello World!\n"); моя_функция (); return 0; } ... в masm там проще : Код (Text): includelib моя_lib.lib моя_функция PROTO <...> invoke моя_функция ... а в этом VC? ...
> extern "C" void __stdcall твоя_функция (void) это Си++, а на Си такое уже не прокатит это во-первых тип вызова должен быть задан явно. это во-вторых. в третьих, Си в отличии от Си++ не требует никаких extern'ов, достаточно лишь просто описать прототип функции. вот пример как это можно сделать на масме. кстати говоря, использовать stdcall неразумно. уж лучше fastcall - он передает аргументы через регистры, правда порядок передачи варьируется от компилятора к компилятору _166048313__lib.zip