|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
| Добрый день. Возникла необходимость отправлять e-mail в приложении, не нагружая пользователя запуском почтовика и необходимостью каждый раз заполнять адресные поля и т.д. Приложение пишется в VC++ (VS 2005) с использованием mfc. Пытаюсь использовать для этой цели библиотеку MAPI. Пишу следующий код: LHANDLE pSession; MapiRecipDesc *pRecipient; //Структура получателей.MapiMessage pMessage; //Структура сообщения.MAPILogon(0,_T( "profile"), NULL, MAPI_NEW_SESSION, 0, &pSession);//Установка новой сессии.pMessage.lpszSubject = "Система регистрации";pMessage.lpszNoteText = "ТЕСТ";pMessage.nRecipCount = 1; pMessage.lpRecips = pRecipient; MAPISendMail(pSession, 0, &pMessage, 0, 0); //Отправка сообщенияMAPILogoff(pSession, 0, 0, 0); //Завершение сессии.
Пишет следующее - error LNK2019: unresolved external symbol на MAPILogon, MAPISendMail и MAPILogoff. Библиотеку вроде подцепил - #include <mapi.h> #pragma comment ( lib, "mapi32.lib" ) В чем дело?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
| Все, разобрался! Оказывается просто так вызывать функции MAPI нельзя, нужно явно загрузить mapi32.dll и получить адрес с помощью GetProcAdress. m_hMapi = LoadLibrary(_T( "MAPI32.DLL"));if (m_hMapi){ m_lpfnMAPILogon = (LPMAPILOGON) GetProcAddress(m_hMapi, "MAPILogon");m_lpfnMAPILogoff = (LPMAPILOGOFF) GetProcAddress(m_hMapi, "MAPILogoff");m_lpfnMAPISendMail = (LPMAPISENDMAIL) GetProcAddress(m_hMapi, "MAPISendMail"); }
Всем спасибо!
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Странно. По идее надо было добавить mapi32.lib в настройки компоновщика.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 06.07.2008 10:37
Сообщ.: 236,
Visits: 1 734
|
|
| Я тоже так думал, добавлял, удалял, вобщем извращался с этой mapi32.lib по всякому :)). В итоге ничего не добился пока не сделал так, как описал выше. Если у Вас получилось по другому пожалуйста поделитесь.
|
|
|
|