头文件(mfs.h)里定义一个结构体:结构体里含有很多个成员,在此列举一个
#ifndef _mfs_
#define _mfs_
struct mfs
{
int mcw[5];
};
#endif
函数get_data()用来向结构体变量赋值:
#include<iostream.h>
#include<fstream.h>
#include<windows.h>
#include"mfs.h";
int get_data(struct mfs mf)
{
ifstream input1;
static i,ret=0;
input1.open("D:/数据/rig.txt",ios::in);
if(!input1)
{
cout<<" rig.txt没打开"<<endl;
ret=5;
return(ret);
}
for(i=0;i<5;i++)
{
input1>>mf.mcw ;
}
input1.close();
return (ret);
}
下面是主运算函数hly():
#include <windows.h>
#include<iostream.h>
#include"mfs.h"
struct mfs mf;
int _stdcall hly(int szq[5])
{
extern int get_data(struct mfs mf);
static int i,ret=20;
int wyx[5];
ret=get_data(mf);
for(i=0;i<5;i++)
{
wyx=szq+mf.mcw;
}
return (wyx[2]);
}
MyDll.cpp文件:
#include <windows.h>
#include<iostream.h>
#include"mfs.h"
extern "C"_declspec(dllexport) int _stdcall hly(int szq[5]);
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
switch( ul_reason_for_call )
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
MyDll.def文件:
LIBRARY MyDLL
EXPORTS hly
vb当中:
Option Explicit
Private Declare Function hly Lib "MyDLL.dll" (ByRef ft As Long) As Long
Private Sub Command1_Click()
Dim b As Long
b = hly(ft(0))
Text1.Text = b
End sub
5 个解决方案
#1
大家帮帮忙呀,不是一个复杂的程序的,只是所有文件我都写出来了而已。快点帮帮我呀。谢谢。
#2
关注一下
#3
怎么没人帮忙呀?拜托呀。
#4
哪儿出了问题?
晕哦!哪个数据不对?
顶下
晕哦!哪个数据不对?
顶下
#5
我详细说一下,有一段vc程序,里面含有一个头文件(定义一个结构体),一个子程序(用来调用记事本里的数据为结构体变量赋值),一个主程序利用结构体变量来计算别的模型,然后将这段vc程序做成一个dll,在vb里调用这个dll,可是从计算程序返回到vb里的数据不对,我查的是结构体变量的值根本没有参加计算过程,似乎传进的数据在调用完子程序后就没了,如果把结构体变量换成数组,结果就对了,请问是怎么回事?该怎么办呢?大家给点帮助。
#1
大家帮帮忙呀,不是一个复杂的程序的,只是所有文件我都写出来了而已。快点帮帮我呀。谢谢。
#2
关注一下
#3
怎么没人帮忙呀?拜托呀。
#4
哪儿出了问题?
晕哦!哪个数据不对?
顶下
晕哦!哪个数据不对?
顶下
#5
我详细说一下,有一段vc程序,里面含有一个头文件(定义一个结构体),一个子程序(用来调用记事本里的数据为结构体变量赋值),一个主程序利用结构体变量来计算别的模型,然后将这段vc程序做成一个dll,在vb里调用这个dll,可是从计算程序返回到vb里的数据不对,我查的是结构体变量的值根本没有参加计算过程,似乎传进的数据在调用完子程序后就没了,如果把结构体变量换成数组,结果就对了,请问是怎么回事?该怎么办呢?大家给点帮助。