请问这个C++的dll在C#中怎么调呀?急……在线等!

问题描述

请问这个C++的dll在C#中怎么调呀?急……在线等!

C++中的调用:
extern "C" _declspec(dllimport) int ReadGzjzzData(char* pData,char* photo,int * iErrCode);

void CReadGzjzzDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
// OnOK();
char Data[64*1024] = {0};//各字段用双竖“||”分隔。
char photo[10*1024] = {0};
int iErrCode = 0;
BOOL ret = ReadGzjzzData(Data,photo,&iErrCode);
if(ret)
{
//数据保存操作
}
}
C#中是怎样的呢???

解决方案

已解决,谢谢各位。我解决如下:
[DllImport("Gzjzz.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
private static extern Int32 ReadGzjzzData(IntPtr data, IntPtr photo, ref int iErrCode);

    public static int GPReadGzjzzData(ref string datastr, ref string photostr, ref int iErrCode)
    {
        int ERROR = 0;
        IntPtr data = Marshal.AllocHGlobal(64 * 1024);
        IntPtr photo = Marshal.AllocHGlobal(10 * 1024);
        int ret = ReadGzjzzData(data, photo, ref ERROR);
        datastr = Marshal.PtrToStringAnsi(data);
        photostr = Marshal.PtrToStringAnsi(photo);
        Marshal.FreeHGlobal(data);
        Marshal.FreeHGlobal(photo);
        return ret;
    }

解决方案二:

public partial class CReadGzjzzDlg
{
public void OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
// OnOK();
sbyte[] Data = new sbyte[64 * 1024]; //各字段用双竖"||"分隔。
sbyte[] photo = new sbyte[10 * 1024];
int iErrCode = 0;
int ret = ReadGzjzzData(Data, photo, iErrCode);
if (ret != 0)
{
//数据保存操作
}
}
}

解决方案三:

对应dllimport怎么声明?

解决方案四:

这样不行,调用时提示:托管调试助手“PInvokeStackImbalance”在“C:UsersAdministratorDesktop222sCardTestreadJzzInfobinDebugreadJzzInfo.vshost.exe”中检测到问题。

解决方案五:

C#调用c++ dll
http://blog.csdn.net/jiangxinyu/article/details/7848015
http://www.cnblogs.com/dragonwlb/archive/2013/04/04/2999729.html

解决方案六:

[DllImport("你的.dll", EntryPoint = "#1你的第几个导出函数", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
static extern int ReadGzjzzData(StringBuilder pData,StringBuilder photo,IntPtr iErrCode);

时间: 2024-08-04 11:33:06

请问这个C++的dll在C#中怎么调呀?急……在线等!的相关文章

图片上传中的复制问题~~~急!!!在线等....

问题描述 voidcopy(Filef1,Filef2){//f1源文件路径f2目标路径最后把f2insert到数据库就不写了try{//建立相关的字节输入流FileInputStreamfr=newFileInputStream(f1);//通过打开一个到实际文件的连接来创建一个//FileInputStream,该文件通过文件系统中的路径名//创建一个向具有指定名称的文件中写入数据的输出文件流.FileOutputStreamfw=newFileOutputStream(f2);bytebu

请问如何在混编oc文件中的c++函数内调用另一个oc函数?

问题描述 请问如何在混编oc文件中的c++函数内调用另一个oc函数? 代码文件主要以oc编写,其中有一个函数是以C++的方式编写的,因此不知应该如何在这个函数中调用类中定义的函数和变量了,求教. 头文件都正确导入了,应该没有问题的. @interface QuickConfigurationController () --@property (nonatomicstrong) NSString *nsip;@end @implementation QuickConfigurationContro

0x59EC4A40 (mfc110d.dll) (OLYONE.exe 中)处有未经处理的异常:

问题描述 0x59EC4A40 (mfc110d.dll) (OLYONE.exe 中)处有未经处理的异常: 0x59EC4A40 (mfc110d.dll) (OLYONE.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0xCCCCCCCC 时发生访问冲突. 解决方案 0xCCCCCCCC - 指针操作异常等. 解决方案二: 你直接编译器打开,查看断点位置,调试 解决方案三: 一看0xCCCCCCCC就知道,是你的内存没有初始化造成的. Visual C++为了调试的方便

页面<img>标签显示的图片,请问用java可以导入到excel中么?怎么导入?

问题描述 页面<img>标签显示的图片,请问用java可以导入到excel中么?怎么导入? oracle存储图片的类型是blob,这个是可以在页面读取出来的,但是怎么导入到excel中呢? 解决方案 img需要根据src用httpclient先下载,然后再插入图片到excel中. 解决方案二: 如果是本地的图片,并且blob类型,存储的,需要导出到文件. 解决方案三: http://stackoverflow.com/questions/681206/insert-image-into-exc

visual studio 2010-VS2010编写的C#dll在delphi中怎么调用?在线急等!

问题描述 VS2010编写的C#dll在delphi中怎么调用?在线急等! 我用C#写了一个dll给delphi调用,可是生成的程序启动不了,提示初始化失败!是什么原因啊?请教了!在线等,解决问题立刻结贴. 解决方案 可以做成com组件供其他程序用 解决方案二: .net的特殊DLL是无法直接给Delphi用的,要么做成Activex,,否则要通过系统程序集的模式注册,然后才能使用,直接当成普通DLL是永不了的 解决方案三: 问题已经解决,谢谢楼上两位!

as3-AS3 请问如何让怪物顺着这个数组中的路线坐标行走??

问题描述 AS3 请问如何让怪物顺着这个数组中的路线坐标行走?? package { import flash.display.MovieClip; import flash.events.Event; import flash.events.MouseEvent; import flash.display.Stage; public class Monster extends MovieClip { //怪物行走路线 private var _Monster_Route_Array:Array

请问各位,在C#网络编程中,如果要实现不在一个局域网内的两台电脑的通信,我该怎么实现?

问题描述 请问各位,在C#网络编程中,如果要实现不在一个局域网内的两台电脑的通信,我该怎么实现?初学者的问题,谢谢了 解决方案 解决方案二:没有人,自己顶起来解决方案三:不能沉啊,自己顶起来,拜托各位大侠了解决方案四:你可以了解下NAT穿透

请问各位高手:怎么将网页中注册的账号联系到软件当中,也就是网上注册的账号,可以用来登录软件,这个功能是如何实现的。

问题描述 请问各位高手:怎么将网页中注册的账号联系到软件当中,也就是网上注册的账号,可以用来登录软件,这个功能是如何实现的,如能解决小弟感激不尽. 解决方案 解决方案二:你使用的是什么模式的开发环境啊.如果说struts,jsp或者servlet,jsp使用session既可以了解决方案三:小弟愚昧,不太懂这方面的,有没有什么参考的资料,给个网址什么的,好认真研究一下,谢谢楼上这位大哥了

视频融合-请问,关于无线多媒体传感器网络中,国外的关于数据融合的大师有哪些?

问题描述 请问,关于无线多媒体传感器网络中,国外的关于数据融合的大师有哪些? 关于数据融合的算法国外的主干都有哪些,,,最好是视频数据融合的大师,, 求助啊....最好是所有大师的算法都告知一下 本人菜鸟,,刚刚起步...