C # P \ Invoke DLL no hay punto de entrada en C ++?

Tengo una Dll de C ++ "TheFoo.dll" con un método "Foo ()"

Tengo acceso a otro código C ++ que usa este método simplemente llamando:

Foo();

Creo que el Método tiene el:

 __declspec( dllexport )

Entonces, con la lectura que he hecho sobre P / Invoke, pensé que debería poder llamar simplemente el mismo método desde mi código C #:

namespace PInvokeExample1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

        }


        [DllImport(@"C:\MyFolder\TheFoo.dll")]
        public static extern
            void Foo();

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Foo();

        }



    }
}

Cuando lo ejecuto, me sale un error:

Unable to find an entry point named 'Foo' in DLL 'C:\MyFolder\TheFoo.dll'.

¿Alguna idea de por qué no se encuentra?

Respuestas a la pregunta(3)

Su respuesta a la pregunta