vc dll文件中函数返回值在vb中调用出现异常?

hhliud 2012-09-07 09:09:40
#include <windows.h>


#include "7012Demo.h"

#include "Isa7012.h"

#pragma comment(lib, "ISA7012DLL.lib")



BOOL IsIniSuccess = FALSE ;

BOOL Ini7012(DWORD hwnd)


{

AD7012_WINCTRL_STRUCT ddd;

memset( &ddd, 0, sizeof(AD7012_WINCTRL_STRUCT) );

ddd.m_ADType = 1;

ddd.m_BufferBlock = 4;

ddd.m_ClkSrc = 0;

ddd.m_EndChn = 15;

ddd.m_hWnd = hwnd;

ddd.m_StartChn = 0;

ddd.m_StartType = 0;

ddd.m_Timer0Val = 200;

ddd.m_Timer1Val = 20;

ddd.m_Timer2Val = 20;

//ddd.m_IntFlag = 0;






if ( Isa7012_Open(0) )


{

//设备已成功打开



}


else

{

return FALSE;

}

if ( Isa7012_IsOpen(0) )

{

//打开Isa7012



}

else

{

return FALSE;

}

if ( Isa7012_ADCtrl(0 , &ddd))

{

//初始化正确



}

else

{

return FALSE;

}

Isa7012_StartAD(0);

}




//int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)

//{

//return TRUE ;

//}



__stdcall int CALLBACK Compare (int a,int b)


{

if(a>=b)

return a;

else

return b;

};

__stdcall float CALLBACK Friction (DWORD hwnd)

{

if ( !IsIniSuccess )

{

if (Ini7012(hwnd))

{

IsIniSuccess = TRUE ;

}

else

{

IsIniSuccess = FALSE ;

return 110;

}

}



float volL = 0.0f;


WORD dddd;

if(!Isa7012_SoftADGetVal(0,4,&dddd))

{

return -50;

}

volL = dddd & 0xFFF;

volL=((volL / 4095 * 20 - 3) * 100 / 15);

return volL;

};

下面是在vb中的程序:大家帮忙看看什么情况

Private Declare Function Friction Lib "C:\Documents and Settings\Administrator\桌面\dllvbdemo\7012Demo.dll" _

() As Long

Private Declare Function Compare Lib "C:\Documents and Settings\Administrator\桌面\dllvbdemo\7012Demo.dll" _

(ByVal CompareA As Integer, ByVal CompareB As Integer) As Integer

Dim i As Single

Private Sub Form_Load() '窗体加载

i = Friction()

End Sub

在vc中返回值volL为46.2542
在vb中获得的值为36

...全文
221 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-09-07
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。
也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。
只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。
即可很方便地让A、B两种语言之间协调工作。
Gloveing 2012-09-07
  • 打赏
  • 举报
回复
在VB中使用与C++中对应的类型
  • 打赏
  • 举报
回复
VB记不得了 目测VB中返回值类型不对
hhliud 2012-09-07
  • 打赏
  • 举报
回复
还有没有大侠帮我看看吗 需要你们的帮助啊

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧