Announcement

Collapse
No announcement yet.

CallBack (unmanaged dll) ruft System.NullReferenceExeption aus

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • CallBack (unmanaged dll) ruft System.NullReferenceExeption aus

    C++ declarations <PRE>
    BOOL EnumOpenedProjects ( <PRE>
    LPDWORD lpdwItems, <PRE>
    DM_ENUM_OPENED_PROJECTS_PROC lpfnEnum, <PRE>
    LPVOID lpvUser, <PRE>
    LPCMN_ERROR lpdmError); <PRE>

    BOOL ( * ENUM_OPENED_PROJECTS_PROC) ( <PRE>
    LPDM_PROJECT_INFO lpInfo, <PRE>
    LPVOID lpvUser ); <PRE>

    <PRE> ----------------------------------------------------
    <PRE> C#declarations <PRE>

    [DllImport("testcl.dll")] <PRE>
    public static extern int EnumOpenedProjects ( <PRE>
    //[MarshalAs(UnmanagedType.LPArray)] <PRE>
    ref int lpdwItems, <PRE>
    ENUM_OPENED_PROJECTS_PROC lpfnEnum, <PRE>
    object lpvUser, <PRE>
    CMNERRORSTRUCT lpdmError); <PRE>

    public delegate void ENUM_OPENED_PROJECTS_PROC( <PRE>
    PROJECT_INFO lpInfo, <PRE>
    object lpvUser); <PRE>
    <PRE>
    ---------------------- <PRE>
    <PRE>
    public void test() <PRE>
    { <PRE>
    CMNERRORSTRUCT Error = new CMNERRORSTRUCT(); <PRE>
    ENUM_OPENED_PROJECTS_PROC EnumCallBack = new <PRE> ENUM_OPENED_PROJECTS_PROC(EnumOpendProjectsCB); <PRE>
    int dwItems = 0, x = 0; <PRE>
    object dummy = null; <PRE>

    x = EnumOpenedProjects(ref dwItems, EnumCallBack, dummy, Error); <PRE>
    } <PRE>
    <PRE>
    public void EnumOpendProjectsCB(PROJECT_INFO lpInfo, object lpvUser ) <PRE>
    { <PRE>
    g_szProjectFile = lpInfo.szProjectFile; <PRE>
    g_szDSNName = lpInfo.szDSNName; <PRE>
    } <PRE>
    <PRE>
    ------------------------------------------- <PRE>
    ------------------------------------------- <PRE>
    <B>
    <PRE> Kann mir jemand sagen, warum beim Aufruf von EnumOpenedProjects(ref dwItems, EnumCallBack, dummy, Error) eine NullReferenceExeption auftritt?
    Habe auch schon versucht die calling convetions über ildasm und ilasm anzupassen, nur alles erfolglos...</B>
Working...
X