用vc调用一个dll中的函数,通过GetProcAddress获得函数指针,然后传入参数,编译后出现error c2197:'int(_stdcall *)(void)':too many actual parameters,觉得是参数不对,可就算一个参数不给仍然出现同样错误。
希望各位高手赐教!!
马上给分!!!
希望各位高手赐教!!
马上给分!!!
解决方案 »
- 连接远程服务器读取数据库用什么方法?
- 在学习WINDOWS程序设计遇到的问题
- 一个包含Com组件的dll,是运行在容器程序的地址空间里面,还是Com管理器的地址空间里面?
- 请教,vs2010 win32 dll project ,生成了dll却没有相应的lib,如何解决
- 请问下个sendmessage操作 列表Report 的样式. 方法.
- 【请教】给程序中create的控件添加消息相应函数??
- 照着书抄ADO代码,结果编译时说RxRecordset这种类型的变量不认识,怎么办?
- 请问如何让我的程序启动一个已经写号内容写字本?
- 关于回调函数
- 请问怎样实现 求两个整数的最大公约数和最小公倍数 ???
- 2000密码
- 请问怎样在一个Dialog里面添加热键?(我在Single document底下可以,在dialog 去不行)
函数原型为DWORD GetSysInfo(int nPort,LPVOID lpBuffer);
lpBuffer为缓冲区,nPort为串口
CString cs;
double dbl;
cs.Format("%f", dbl);
MessageBox(cs....);
(只是个大概)
debug状态下,可以看到已经得到函数的入口地址!
typedef DWORD (*PGetSysInfo)(int nPort,LPVOID lpBuffer);##如果你的函数有WINAPI的话就
## typedef DWORD (WINAPI *PGetSysInfo)(int nPort,LPVOID lpBuffer);
## 必须和定义一致,否则有错误PGetSysInfo pFun = (PGetSysInfo)GetProcAddress(...);
pFun(nPort, lpBuffer);你直接用FARPROC是没有用的。
你是不是这样:
FARPROC pFun = GetProcAddress(...);
pFun(nPort, lpBuffer);
先用SPRINTF格式化字符串再MESSAGEOBX即可