я пишу свою программу в 2005й студии, однако определенная часть кода была написана в masm32. Я добавил *.asm файл в проэкт. Код на си обращался к переменной из ассемблерного модуля и в этом месте я получал ошибку. Код (Text): extern "C" char fake_name; void xXxXx(DWORD pid) { fake_name='a'; .................. и заменил fake_name на _fake_name по всему асссемблерному листингу. Однако все равно получал ошибку. pattern.obj : error LNK2001: unresolved external symbol _fake_name мне подсказали что надо каким то образом указать в ассемблерном исходнике что переменная будет экспортироватся. Однако не имею ни малейшего понятия как это сделать. Помогите пожалуйста разобратся.
rmn Так и в масме... что-то типа: Код (Text): public _fake_name ... .data ... _fake_name db ? ... IceStudent Так она же вроде все символы делает публичными?
делаю так Код (Text): public _fake_name _fake_name DWORD ? получаю: unresolved external symbol _fake_name в сишном коде через EXTERNDEF вообще ничерта не получается (
spencer В зависимости от соглашения о вызове, имя экспортируемого символа подвергается манглингу. Короче, не нужно добавлять _ перед именем переменной - его добавит компилятор. Вообще, если есть сомнения в правильности имени символа, вооружайтесь хекс-редактором - уйму нервов сэкономите.
да, все отлично заработало... выходит не надо мне ничего вручную менять.... я то в асм коде подабовлял _ перед интересующими меня именами.... Всем спасибо за помощь