C#调用医保接口VC动态库,提示:无法加载 DLL “BargaingApplyV3_01036.dll”:找不到指定的模块,郁闷,函数名确实没有打错啊?public class Sxyb
{
/// <summary>
/// 交易初始化函数
/// </summary>
/// <param name="strEmpty">不需要传递数据</param>
/// <param name="strMsg">返回的信息</param>
/// <param name="strYLJGBH">传递医疗机构编号</param>
/// <returns>等于0:成功,没有任何警告,返回信息在retMsg,大于0:成功,但是有警告信息,警告信息在retMsg,小于0:失败,错误信息在retMsg中</returns>
[DllImport("BargaingApplyV3_01036.dll", EntryPoint = "f_UserBargaingInit")]
public static extern int f_UserBargaingInit(string strEmpty, string strMsg,string strYLJGBH); /// <summary>
/// 交易关闭函数
/// </summary>
/// <param name="strEmpty">不需要传递数据</param>
/// <param name="strMsg">返回的信息</param>
/// <param name="strYLJGBH">传递医疗机构编号</param>
/// <returns>等于0:成功,没有任何警告,返回信息在retMsg,大于0:成功,但是有警告信息,警告信息在retMsg,小于0:失败,错误信息在retMsg中</returns>
[DllImport("BargaingApplyV3_01036.dll", EntryPoint = "f_UserBargaingClose")]
public static extern int f_UserBargaingClose(string strEmpty, string strMsg, string strYLJGBH);
}
string strEmpty = string.Empty;
string strMsg = string.Empty;
string strYLJGBH = "330699000081";
int result = Sxyb.f_UserBargaingInit(strEmpty, strMsg, strYLJGBH);
MessageBox.Show(result.ToString() + "," + strMsg);函数原型:int f_UserBargaingInit(const char * Data1,char * retMsg,char* Data2)
功能:系统应用前初始化数据准备
参数说明:
传入参数:Data1-------不需要传递数据
Data2-------传递医疗机构编号
retMsg ---- 返回的信息,数据包格式参考3.3
返回值:=0-----------成功,没有任何警告,返回信息在retMsg
>0-----------成功,但是有警告信息,警告信息在retMsg
<0-----------失败,错误信息在retMsg中
{
/// <summary>
/// 交易初始化函数
/// </summary>
/// <param name="strEmpty">不需要传递数据</param>
/// <param name="strMsg">返回的信息</param>
/// <param name="strYLJGBH">传递医疗机构编号</param>
/// <returns>等于0:成功,没有任何警告,返回信息在retMsg,大于0:成功,但是有警告信息,警告信息在retMsg,小于0:失败,错误信息在retMsg中</returns>
[DllImport("BargaingApplyV3_01036.dll", EntryPoint = "f_UserBargaingInit")]
public static extern int f_UserBargaingInit(string strEmpty, string strMsg,string strYLJGBH); /// <summary>
/// 交易关闭函数
/// </summary>
/// <param name="strEmpty">不需要传递数据</param>
/// <param name="strMsg">返回的信息</param>
/// <param name="strYLJGBH">传递医疗机构编号</param>
/// <returns>等于0:成功,没有任何警告,返回信息在retMsg,大于0:成功,但是有警告信息,警告信息在retMsg,小于0:失败,错误信息在retMsg中</returns>
[DllImport("BargaingApplyV3_01036.dll", EntryPoint = "f_UserBargaingClose")]
public static extern int f_UserBargaingClose(string strEmpty, string strMsg, string strYLJGBH);
}
string strEmpty = string.Empty;
string strMsg = string.Empty;
string strYLJGBH = "330699000081";
int result = Sxyb.f_UserBargaingInit(strEmpty, strMsg, strYLJGBH);
MessageBox.Show(result.ToString() + "," + strMsg);函数原型:int f_UserBargaingInit(const char * Data1,char * retMsg,char* Data2)
功能:系统应用前初始化数据准备
参数说明:
传入参数:Data1-------不需要传递数据
Data2-------传递医疗机构编号
retMsg ---- 返回的信息,数据包格式参考3.3
返回值:=0-----------成功,没有任何警告,返回信息在retMsg
>0-----------成功,但是有警告信息,警告信息在retMsg
<0-----------失败,错误信息在retMsg中
解决方案 »
- 各位大侠们觉得 在递归遍历中 要用到对比字符串 那种方式快呢
- DevExpress Bar 菜单
- 连接 access 2010
- 窗体的父类是控件类这句话对吗
- C# WndProc(ref Message m) 方法的用法
- C#下MSCOMM通信问题
- ****************DataGrid分页状态下CheckBox选定后,翻页仍保存选定信息,怎样操作***************
- 有什么样的软件可以打开DLL和EXE文件,同时可以修改里面的一些图像内容,
- 高分问一道题,请大家都来看一下
- C#数据绑定将一个Excel 表格绑定到一个Datagridview出现问题
- .net使用HttpWebRequest POST文件问题
- C#中怎样获得当前电脑登录windows系统的域名称和域帐号
{
/// <summary>
/// 交易初始化函数
/// </summary>
/// <param name="strEmpty">不需要传递数据</param>
/// <param name="strMsg">返回的信息</param>
/// <param name="strYLJGBH">传递医疗机构编号</param>
/// <returns>等于0:成功,没有任何警告,返回信息在retMsg,大于0:成功,但是有警告信息,警告信息在retMsg,小于0:失败,错误信息在retMsg中</returns>
[DllImport("BargaingApplyV3_01036.dll", EntryPoint = "f_UserBargaingInit")]
public static extern int f_UserBargaingInit(string strEmpty, string strMsg,string strYLJGBH); /// <summary>
/// 交易关闭函数
/// </summary>
/// <param name="strEmpty">不需要传递数据</param>
/// <param name="strMsg">返回的信息</param>
/// <param name="strYLJGBH">传递医疗机构编号</param>
/// <returns>等于0:成功,没有任何警告,返回信息在retMsg,大于0:成功,但是有警告信息,警告信息在retMsg,小于0:失败,错误信息在retMsg中</returns>
[DllImport("BargaingApplyV3_01036.dll", EntryPoint = "f_UserBargaingClose")]
public static extern int f_UserBargaingClose(string strEmpty, string strMsg, string strYLJGBH);
}
PowerBuilder中函数定义:FUNCTION integer f_UserBargaingInit(string lpData1, ref string lpMessage,string lpData2) library "BargaingApplyV3_01011 "
dll导出函数没有问题
保证dll与你的程序在同一个目录下
不行就LoadLibrary+GetProcAddress
/// Return Type: int
public delegate int FARPROC();[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
public struct HINSTANCE__ {
/// int
public int unused;
}public partial class NativeMethods {
/// Return Type: HMODULE->HINSTANCE->HINSTANCE__*
///lpFileName: LPCTSTR->LPCWSTR->WCHAR*
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint="LoadLibraryW")]
public static extern System.IntPtr LoadLibraryW([System.Runtime.InteropServices.InAttribute()] [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPTStr)] string lpFileName) ;
/// Return Type: FARPROC
///hModule: HMODULE->HINSTANCE->HINSTANCE__*
///lpProcName: LPCSTR->CHAR*
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint="GetProcAddress")]
public static extern FARPROC GetProcAddress([System.Runtime.InteropServices.InAttribute()] System.IntPtr hModule, [System.Runtime.InteropServices.InAttribute()] [System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.LPStr)] string lpProcName) ;}
试试别的。VC如果没有改动的话,默认是__cdecl。
[DllImport(CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]