2017-06-26 3 views
0

Ich verwende Visual Studio 2015. C++ Win32-Projekt erstellen.Funktionen sind nicht sichtbar von meiner DLL

definiere ich meine Funktionen wie folgt aus:

extern "C" __declspec(dllexport) int __stdcall function1(par1,par2,..) 

DLL erfolgreich kompiliert. Warum sehe ich nicht die Funktion in DLL Export Viewer und ähnlichen Tools (Dumpbin und so weiter). Was sollte ich noch hinzufügen?

Danke.

+0

Willkommen bei Stack Overflow. Bitte nehmen Sie sich die Zeit, [The Tour] (http://stackoverflow.com/tour) zu lesen und beziehen Sie sich auf das Material aus der [Hilfe] (http://stackoverflow.com/help/asking), was und wie Sie können fragen Sie hier. –

Antwort

0

Mit Ihrem Code und setzen Sie es in ein leeres Win32 DLL-Projekt tatsächlich produziert eine exportierte Funktion in der DLL.

#include <Windows.h> 

extern "C" __declspec(dllexport) int __stdcall function1(int p) 
{ 
    return p; 
} 

So bin ich nicht sicher, was es Sie oben tat und über die „normale“

+0

Kann es sein, weil #include "stdafx.h" nicht vor diesen Funktionen hinzugefügt wird, sondern unten im Code hinzugefügt? – Nikola

0

ich eine Lösung heißt mein Fehler gefunden. Es gab einen Code in der gleichen cpp:

BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) 
{ 
    //---- 
    switch (ul_reason_for_call) 
    { 
    case DLL_PROCESS_ATTACH: 
    case DLL_THREAD_ATTACH: 
    case DLL_THREAD_DETACH: 
    case DLL_PROCESS_DETACH: 
     break; 
    } 
    //---- 
    return(TRUE); 
} 

Das gleiche wie in dllmain.cpp. Und deshalb, einschließlich "stdafx.h" vor dem obigen Code namens Fehler von mehreren Definitionen. Sobald ich den obigen Code entfernt habe, habe ich das Include "stdafx.h" oben in die Datei eingefügt, kompiliert und meine Funktionen wurden "sichtbar".

Verwandte Themen