Re[4]: Проблема с Shell_NotifyIcon
От: Demaniac  
Дата: 25.07.06 15:50
Оценка:
Здравствуйте, cod3r_200, Вы писали:

_>Здравствуйте, Demaniac, Вы писали:


D>>Конечно же пробовал... Вылетает три тележки ошибок такого типа:


D>> C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShellAPI.h(55): error C2501: 'DECLARE_HANDLE' : missing storage-class or type specifiers


D>>C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShellAPI.h(57): error C2146: syntax error : missing ';' before identifier 'DECLSPEC_IMPORT'


D>>C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShellAPI.h(58): error C2086: 'int UINT' : redefinition


_>С хедерами дето намутил значит .Если операция разовая, то получи динамически адрес ф-ции через GetProcAddress


_>пример:

_>
_>typedef BOOL (*pShell_NotifyIcon)(DWORD dwMessage, PNOTIFYICONDATA lpdata);
_>HANDLE hShell = ::LoadLibrary(_T("shell32.dll"));
_>if (NULL != hShell) {
_>    pShell_NotifyIcon __pShell_NotifyIcon = (pShell_NotifyIcon) ::GetProcAddress(hShell, "Shell_NotifyIcon");
_>    if (__pShell_NotifyIcon != NULL) {
_>        __pShell_NotifyIcon(...);
_>    }
_>}
_>



Открыл новый проект и перенёс весь код туда... Вы были правы, что-то с хедерами было... Последние ошибки уже не вылетают... Но по прежнему выдаёт первую ошибку... Вот Вам пример кода...


#include <windows.h>
#include <shellapi.h>
#include "resource.h"

#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:DllMain")
#pragma comment(linker,"/NODEFAULTLIB")

#pragma comment(lib, "shell32.lib ")

HINSTANCE hInst;

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved )
{
    hInst = (HINSTANCE)hModule;
    return TRUE;
}

void WndToTray( HWND hWnd )
{
    NOTIFYICONDATA nid;
}


Компилится в Release... Если закомментировать NOTIFYICONDATA nid;, то всё в порядке... Файл 3 кб получается...
Но если комментарий убрать, сразу кидает

error LNK2019: unresolved external symbol ___security_cookie referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)

Уже и не знаю что делать... А очень уж нужно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.