TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
thomaass
NA
2
0
MissingMethodException
May 11 2005 2:35 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
Reply
Answers (
0
)
C# Service or Scheduled Task
The Code is very useful to learn Dotnet