FAQ не помог. unresolved external symbol

Тема в разделе "WASM.BEGINNERS", создана пользователем Alex BP, 6 фев 2007.

  1. Alex BP

    Alex BP New Member

    Публикаций:
    0
    Регистрация:
    31 май 2004
    Сообщения:
    2
    Не могу понять в чем проблема.

    Вот кусок из либы:
    td@@QAEXI@Z ?IconCash@@YA?AV?$vector@UILINFO@@V?$allocator@UILINFO@@@std@@@std@@PAU_IMAGELIST@@V12@PAUHWND__@@PAUHINSTANCE__@@G@Z __imp__SendMessageA@

    Нужно функция IconCash. Вставляю:
    externdef ?IconCash@@YA?AV?$vector@UILINFO@@V?$allocator@UILINFO@@@std@@@std@@PAU_IMAGELIST@@V12@PAUHWND__@@PAUHINSTANCE__@@G@Z:PTR
    IconCash equ <?IconCash@@YA?AV?$vector@UILINFO@@V?$allocator@UILINFO@@@std@@@std@@PAU_IMAGELIST@@V12@PAUHWND__@@PAUHINSTANCE__@@G@Z>

    и все равно выскакивает ошибка. Имя вытаскивал при помощи IDA Pro
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Alex BP
    externdef добавит '_' перед заданным именем, т.к. действует соглашение stdcall, указанное в .model. Нужно явно указать любое другое соглашение, которое не добавляет '_'. На самом деле, таких альтернативных соглашений ровно 1 - это SYSCALL.
     
  3. alexbp

    alexbp New Member

    Публикаций:
    0
    Регистрация:
    24 июл 2005
    Сообщения:
    8
    Спасибо, помогло.
    Только теперь выдает другую ошибку: cannot open file "libcp.lib".
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    LIBCP.LIB - Standard C++ Library
    Посмотри в опциях проекта указаны ли у тебя пути к папке с этой либой.
    Tools/Options/Projects/VC++ Directories\Libraries Files
    Вроде должна быть в этой $(VCInstallDir)lib
     
  5. Alex BP

    Alex BP New Member

    Публикаций:
    0
    Регистрация:
    31 май 2004
    Сообщения:
    2
    Подключил я эту либу, после этого потребовалось еще подключить libc.lib, oldnames.lib. А после этого всего все вывалилось с ошибкой:
    libc.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    libc.lib(a_env.obj) : error LNK2001: unresolved external symbol __imp__GetEnvironmentStrings@0
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    PUBLIC main
    main:
    jmp start

    includelib kernel32.lib
     
  7. alexbp

    alexbp New Member

    Публикаций:
    0
    Регистрация:
    24 июл 2005
    Сообщения:
    8
    От первой ошибки избавился, спасибо.
    А includelib kernel32.lib у меня уже вставленно. Заменил kernel32.lib которая шла вместе м MASM32 на ту которая шла с VisualStudio и пропала вторая ошибка.