掉馅饼咯,(*^__^*)...嘻嘻

qshurufa 2009-06-23 04:09:45
Declare Sub SetPortDir Lib "SX_GPIO.dll" (ByVal iPort As Integer, ByVal dbDir As Byte)
Declare Function GetPortDir Lib "SX_GPIO.dll" (ByVal iPort As Integer) As Byte
把这两句话转成vc++.net,奉上30分。

...全文
26 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinling4388 2009-06-26
  • 打赏
  • 举报
回复
当你要用这两个函数时,你需要这样:

CQQLoader cLoader;
cLoader.SetPortDir(…, …);
char* chStr = cLoader.GetPortDir(…);
jinling4388 2009-06-26
  • 打赏
  • 举报
回复
看你的题目似乎是从DLL中引用了两个函数吧!
SX_GPIO.dll中有两个函数:void SetPortDir(int *iPort, char *dbDir)和char * GetPortDir(int *iPort)
要想在自己的程序中用这两个函数,可以通过函数指针。
例:

#pragma once
//管理导入的DLL
class CQQLoader
{
private:
// 定义动态库中的函数指针
typedef void (*PFN_setPortDir(int *iPort, char *dbDir);
typedef char*(*PFN_getPortDir(int *iPort);
PFN_setPortDir m_setPortDir;
PFN_getPortDir m_getPortDir;

BOOL m_bInited; //是否动态库已经初始化
HMODULE m_hDllMod; //加载的动态库的句柄

public:
CQQLoader()
: m_bInited(FALSE), m_hDllMod(NULL)
{
if (m_hDllMod = LoadLibrary("SX_GPIO.dll"))//括号内DLL路径,可用绝对路径也可用相对路径
{
m_setPortDir= (PFN_setPortDir)::GetProcAddress(m_hDllMod, "SetPortDir");
m_getPortDir= (PFN_getPortDir)::GetProcAddress(m_hDllMod, "GetPortDir");
if (m_setPortDir&& m_getPortDir)
{
m_bInited = TRUE;
}
else
{
FreeLibrary(m_hDllMod);
m_hDllMod = NULL;

AfxMessageBox("Can't load SX_GPIO.dll!");
}
}
}

~CQQLoader()
{
if (m_hDllMod)
{
FreeLibrary(m_hDllMod);
m_hDllMod = NULL;
}
}


void SetPortDir(int *iPort, char *dbDir)
{
if (m_setPortDir)
{
return m_setPortDir(*iPort, *dbDir);
}
return FALSE;
}

char * GetPortDir(int *iPort)
{
if (m_getPortDir)
{
return m_getPortDir(*iPort);
}
return FALSE;
}
};

jinling4388 2009-06-25
  • 打赏
  • 举报
回复
楼上好强呀!也可以通过在设置里引入lib文件
满衣兄 2009-06-25
  • 打赏
  • 举报
回复
也可能是这个:

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


void SetPortDir(int *iPort, char *dbDir)
bool GetPortDir(int *iPort)
满衣兄 2009-06-25
  • 打赏
  • 举报
回复
#pragma comment(lib, "SX_GPIO.lib") 


void SetPortDir(int *iPort, char *dbDir)
char * GetPortDir(int *iPort)
满衣兄 2009-06-25
  • 打赏
  • 举报
回复

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


SetPortDir(int *iPort, char *dbDir)
char * GetPortDir(int *iPort)
After_School 2009-06-25
  • 打赏
  • 举报
回复
up
qshurufa 2009-06-25
  • 打赏
  • 举报
回复
再顶。
就是引用dll文件,一个带返回参数,一个不带的。
满衣兄 2009-06-25
  • 打赏
  • 举报
回复
你把出错的代码贴上来,多贴点
满衣兄 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qshurufa 的回复:]
引用 7 楼 yfqvip 的回复:
C/C++ code#pragma comment(lib, "SX_GPIO.lib")


void SetPortDir(int *iPort, char *dbDir)
char * GetPortDir(int *iPort)


应输入newline,什么意思????
[/Quote]
什么newline?
qshurufa 2009-06-25
  • 打赏
  • 举报
回复
顶上去
qshurufa 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yfqvip 的回复:]
C/C++ code#pragma comment(lib, "SX_GPIO.lib")


void SetPortDir(int *iPort, char *dbDir)
char * GetPortDir(int *iPort)
[/Quote]
应输入newline,什么意思????
qshurufa 2009-06-24
  • 打赏
  • 举报
回复
来人啊!!!!!!!!!
qshurufa 2009-06-24
  • 打赏
  • 举报
回复
自己顶一下。
jinling4388 2009-06-24
  • 打赏
  • 举报
回复
这是什么语言呀?目的是干什么呀?
知道这些可以直接用VC写,现在看不懂呀。是要导入lib文件吗?

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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