Export function problem (unmanged to managed)

  • Thread starter Thread starter Yoavo
  • Start date Start date
Y

Yoavo

Hi,
I am trying to call an Unmanaged code (MFC C++) from Managed code (c#)
I have declared in the unmanaged code the function:
extern "C"
{
_declspec(dllexport) int get_DocName();
}

In the c# code I write:
[DllImport("C:\\MyProj.dll", EntryPoint="get_DocName",
ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
static extern int get_DocName();

When I try to compile the c# code, I get the error:
C:\C#Test\Form1.cs(21,78): error CS1518: Expected class, delegate, enum,
interface, or struct
C:\C#Test\Form1.cs(21,63): error CS0106: The modifier 'extern' is not valid
for this item

Can someone please explain ?

Yoav.
 
In the c# code I write:
[DllImport("C:\\MyProj.dll", EntryPoint="get_DocName",
ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
static extern int get_DocName();

When I try to compile the c# code, I get the error:
C:\C#Test\Form1.cs(21,78): error CS1518: Expected class, delegate, enum,
interface, or struct
C:\C#Test\Form1.cs(21,63): error CS0106: The modifier 'extern' is not valid
for this item

Can someone please explain ?


Like any other method declaration, it must be placed inside a class
(or struct). C# doesn't support global methods.


Mattias
 
Back
Top