各位兄弟们,我在做医保接口,遇到调用dll的问题,HYGEIA城镇职工基本医疗保险管理信息系统 0
2.1.1 long newinterface() 1
2.1.2 long newinterfacewithinit(char *Addr, int Port, char *Servlet) 1
2.1.3 long init(Interface *p_inter, char *Addr, int Port, char *Servlet) 1
2.1.4 destoryinterface(Interface *p_inter) 1
2.1.5 long start(Interface *p_inter, char *FUNC_ID) 2
2.1.6 long put(Interface *p_inter, long row, char *p_name, char *p_value) 2
2.1.7 long putcol(Interface *p_inter, char * p_name, char *p_value) 2
2.1.8 long run(Interface *p_inter) 2
2.1.9 long setresultset(Interface *p_inter, char * result_name) 2
2.1.10 int nextrow(Interface *p_inter) 3
2.1.11 int prevrow(Interface *p_inter) 3
2.1.12 int firstrow(Interface *p_inter) 3
2.1.13 int lastrow(Interface *p_inter) 3
2.1.14 int getbyname(Interface *p_inter, char *p_name, void *p_value) 3
2.1.15 int getbyindex(Interface *p_inter, int index, void *p_name , void *p_value) 4
2.1.16 long getmessage(Interface *p_inter, char *err) 4
2.1.17 long getexception(Interface *p_inter, char *exception) 4
2.1.18 long getrowcount(Interface *p_inter) 4
这些函数在C#中该怎样定义啊

解决方案 »

  1.   

    我定义了但是调用的时候会报错,主要是这里的long类型和void*类型的
    不知道该用哪个合适
      

  2.   

    有对照表的
    C++ C#
    =====================================
    WORD ushort
    DWORD uint
    UCHAR int/byte 大部分情况都可以使用int代替,而如果需要严格对齐的话则应该用bytebyte
    UCHAR* string/IntPtr
    unsigned char* Intptr
    char* string
    LPCTSTR string
    LPTSTR [MarshalAs(UnmanagedType.LPTStr)] string
    long int
    ulong uint
    Handle IntPtr
    HWND IntPtr
    void* IntPtr
    int int
    int* ref int
    *int IntPtr
    unsigned int uint
    COLORREF uint
      

  3.   

    楼主这个API如何声明并调用返回值的?贴下C#代码,我也遇到一模一样的问题,感谢了!
    int getbyname(Interface *p_inter, char *p_name, void *p_value)
      

  4.   

    Interface 是类型吗,楼主,它只是个关键字啊,你这是什么语言的的dll啊?
      

  5.   

    c++写的,interface可以直接用intptr就不会报错了