thomaass

thomaass

  • NA
  • 2
  • 0

MissingMethodException

May 11 2005 2:26 AM
Hi, I am trying to call an unmanaged funcrtion from a simple eMbedded Visual C++ dll, but I only get the MissingMethodException. This is the first time I'm trying do use unmanaged code. Here is a sample of my code: c++ dll: header file: #ifdef TTWRAPPER_EXPORTS #define TTWRAPPER_API __declspec(dllexport) #else #define TTWRAPPER_API __declspec(dllimport) #endif // This class is exported from the ttwrapper.dll class TTWRAPPER_API CTtwrapper { public: CTtwrapper(void); // TODO: add your methods here. }; extern TTWRAPPER_API int nTtwrapper; #ifdef __cplusplus extern "C" { #endif TTWRAPPER_API int fnTtwrapper(); #ifdef __cplusplus } // extern "C" #endif cpp file: #include "stdafx.h" #include "ttwrapper.h" 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; } TTWRAPPER_API int nTtwrapper=0; TTWRAPPER_API int fnTtwrapper() { int t = 15; return t; } CTtwrapper::CTtwrapper() { return; } my simple C# device app: using System.Runtime.InteropServices; using System; using System.Drawing; using System.Collections; using System.Windows.Forms; using System.Data; namespace Managed { public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button button1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.MainMenu mainMenu1; [DllImport("ttwrapper.dll", EntryPoint="fnTtwrapper")] public static extern int fnTtwrapper(); public Form1() { InitializeComponent(); } static void Main() { Application.Run(new Form1()); } private void button1_Click(object sender, System.EventArgs e) { try { int i = fnTtwrapper(); this.textBox1.Text = "taller er: " + i; } catch(Exception ex) { this.textBox2.Text = ex.Message; } } } } Read that many ask for DUMPBIN exports, this is: Section contains the following exports for ttwrapper.dll 00000000 characteristics 42819B5C time date stamp Wed May 11 07:42:52 2005 0.00 version 1 ordinal base 4 number of functions 4 number of names ordinal hint RVA name 1 0 00001030 ??0CTtwrapper@@QAA@XZ 2 1 00001000 ??4CTtwrapper@@QAAAAV0@ABV0@@Z 3 2 00003028 ?nTtwrapper@@3HA 4 3 00001028 fnTtwrapper Summary 1000 .data 1000 .pdata 1000 .rdata 1000 .reloc 1000 .text Anyone who can help me?? I'm testing on a real device via visual studio .net 03 Thomas