Impossible de trouver un point d'entrée lors de l'appel de dll C++ en C#

Je suis en train d'apprendre de P/Invoke, j'ai donc créé une simple dll en C++

KingFucs.h:

namespace KingFuncs
{
    class KingFuncs
    {
    public:
        static __declspec(dllexport) int GiveMeNumber(int i);
    };
}

KingFuns.cpp:

#include "KingFuncs.h"
#include <stdexcept>

using namespace std;

namespace KingFuncs
{
    int KingFuncs::GiveMeNumber(int i)
    {
        return i;
    }
}

Afin de ne compiler, puis j'ai copié cette dll dans mon WPF dossier de débogage, avec le code:

[DllImport("KingFuncDll.dll", EntryPoint = "GiveMeNumber", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
        public static extern int GiveMeNumber(
              int i
              );

Et l'appel au clic de bouton:

private void Button_Click(object sender, RoutedEventArgs e)
{
    int num = GiveMeNumber(123);
}

Mais il me donne exception:

Impossible de trouver un point d'entrée nommée "GiveMeNumber" dans la DLL
'KingFuncDll.dll'.

Vraiment.... qu'ai-je fait de mal... C'est évidemment en mesure de trouver la DLL, autrement, serait une autre exception. Mais mon nom de la méthode est exactement la même chose.... Je ne peux pas penser à autre raison.

Veuillez voir ma question ici: stackoverflow.com/questions/9849541/...
J'ai résolu même question, et de le décrire dans le ce post.

OriginalL'auteur King Chan | 2012-04-11