Проблема вот в чём... Я использую следущие дерективы линкера:
#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")
То есть отключаю CRT... А когда объявляю структуру типа NOTIFYICONDATA, то получаю ошибку:
core error LNK2019: unresolved external symbol ___security_cookie referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)
core error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)
Перепробовал уже, наверное, всё что можно...
Помогите, пожалуйста...
Здравствуйте, Demaniac, Вы писали:
D>Проблема вот в чём... Я использую следущие дерективы линкера:
D>D>#pragma comment(linker,"/MERGE:.rdata=.text")
D>#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
D>#pragma comment(linker,"/ENTRY:DllMain")
D>#pragma comment(linker,"/NODEFAULTLIB")
D>
D>То есть отключаю CRT... А когда объявляю структуру типа NOTIFYICONDATA, то получаю ошибку:
D>core error LNK2019: unresolved external symbol ___security_cookie referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)
D>core error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)
D>Перепробовал уже, наверное, всё что можно...
D>Помогите, пожалуйста...
А так тоже пробывали?
#include <shellapi.h>
#pragma comment (lib, "shell32.lib ")
в мсдн ясно написано:
Header
shellapi.h
Import library
shell32.lib ... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, cod3r_200, Вы писали:
_>Здравствуйте, Demaniac, Вы писали:
D>>Проблема вот в чём... Я использую следущие дерективы линкера:
D>>D>>#pragma comment(linker,"/MERGE:.rdata=.text")
D>>#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
D>>#pragma comment(linker,"/ENTRY:DllMain")
D>>#pragma comment(linker,"/NODEFAULTLIB")
D>>
D>>То есть отключаю CRT... А когда объявляю структуру типа NOTIFYICONDATA, то получаю ошибку:
D>>core error LNK2019: unresolved external symbol ___security_cookie referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)
D>>core error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)
D>>Перепробовал уже, наверное, всё что можно...
D>>Помогите, пожалуйста...
_>А так тоже пробывали?
_>_>#include <shellapi.h>
_>#pragma comment (lib, "shell32.lib ")
_>
_>в мсдн ясно написано:
_>Header shellapi.h
_>Import library shell32.lib
Конечно же пробовал... Вылетает три тележки ошибок такого типа:
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShellAPI.h(55): error C2501: 'DECLARE_HANDLE' : missing storage-class or type specifiers
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShellAPI.h(57): error C2146: syntax error : missing ';' before identifier 'DECLSPEC_IMPORT'
C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include\ShellAPI.h(58): error C2086: 'int UINT' : redefinition
Здравствуйте, 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(...);
}
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, 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)
Уже и не знаю что делать... А очень уж нужно...
D>error LNK2019: unresolved external symbol ___security_cookie referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)
D>Уже и не знаю что делать... А очень уж нужно...
А попробуйте в свойствах проекта
C/C++ -> Code Generation -> Buffer Security Check выставить в No
... << RSDN@Home 1.2.0 alpha rev. 648>>
Здравствуйте, Boss, Вы писали:
D>>error LNK2019: unresolved external symbol ___security_cookie referenced in function "void __cdecl WndToTray(struct HWND__ *)" (?WndToTray@@YAXPAUHWND__@@@Z)
D>>Уже и не знаю что делать... А очень уж нужно...
B>А попробуйте в свойствах проекта
B>C/C++ -> Code Generation -> Buffer Security Check выставить в No
Свершилось ЧУДО!!! Всё работает...

Всем СПАСИБО за помощь...
Здравствуйте, Demaniac, Вы писали:
D>Свершилось ЧУДО!!! Всё работает...
Всем СПАСИБО за помощь...
рады за Вас, а dll зверь, — 3 кб

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>