wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了“无法在dll中找到名为[function]的入口点(c到c#类型转换)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个来自第三方的dll,它是用C写的。 以下是来自dll文档的一些信息: //start documentation RECO_DATA{ wchar_t Surname[200]; wchar_t Firstname[200]; } 描述: 用于接收功能结果的数据结构。所有的功能结果将是 存储为Unicode(UTF-8)。 方法: bool recoCHN_P_Name(char *im
我有一个来自第三方的dll,它是用C写的。
以下是来自dll文档的一些信息:
//start documentation

RECO_DATA{
wchar_t Surname[200];
wchar_t Firstname[200];
}

描述:
用于接收功能结果的数据结构。所有的功能结果将是
存储为Unicode(UTF-8)。

方法

bool recoCHN_P_Name(char *imgPath,RECO_DATA *o_data);

输入:

char * imgPath

图像位置的完整路径为此
功能识别

RECO_DATA * o_data

用于接收功能的数据对象
结果。
功能返回:
如果成功则为True,否则返回false。

//end documentation

我正在尝试从C#应用程序@L_197_8@recoCHN_P_Name。为此,我想出了这段代码

导入dll的代码

public class cnOCRsdk
{
    [StructLayout(LayoutKind.Sequential,CharSet = CharSet.UnicodE)]
    public struct RECO_DATA{
        [MarshalAs(UnmanagedType.byValTStr,SizeConst=200)]
        public String FirstName;
        [MarshalAs(UnmanagedType.byValTStr,SizeConst = 200)]
        public String Surname;
        }

    [DllImport(@"cnOCRsdk.dll",EntryPoint="recoCHN_P_Name")]
    public static extern bool recoCHN_P_Name(byte[] imgPath,RECO_DATA o_data);
}

@L_197_8@函数代码

cnOCRsdk.RECO_DATA recoData = new cnOCRsdk.RECO_DATA();

        String path = @"C:\WINDOWS\twain_32\twainrgb.bR_391_11845@p";

        System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
        byte[] bytes = encoding.GetBytes(path);

        bool res = cnOCRsdk.recoCHN_P_Name(bytes,recoData);

我得到的错误
“”无法在DLL’cnOCRsdk.dll’中找到名为’recoCHN_P_Name’的入口点。
我怀疑我将类型从C转换为C#时出错。但在哪里呢?

首先确保功能实际导出:

在Visual studio命令提示符下,使用dumpbin / exports whatever.dll

大佬总结

以上是大佬教程为你收集整理的“无法在dll中找到名为[function]的入口点(c到c#类型转换)全部内容,希望文章能够帮你解决“无法在dll中找到名为[function]的入口点(c到c#类型转换)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。