C++ 用于在二进制文件上写入函数的cpp指针

C++ 用于在二进制文件上写入函数的cpp指针,c++,function,pointers,function-pointers,binaryfiles,C++,Function,Pointers,Function Pointers,Binaryfiles,我试图创建一个函数,该函数为二进制文件、写和读的函数获取指针。 这两个函数都需要获取: 1) char*(在写函数中,char*表示从开关地址写入,在读函数中,char*表示从开关地址读取) 2) int(在写地址上表示有多少个wirte,在读函数上表示有多少个read) 我想要创建一个函数来获取读/写指针,但是我得到了一个错误 我的密码 #包括 使用名称空间std; #包括 void func(void(*funcToCall)(字符*,整数)) { char*temp=“zzz”; 函数调用

我试图创建一个函数,该函数为二进制文件、写和读的函数获取指针。 这两个函数都需要获取:

1) char*(在写函数中,char*表示从开关地址写入,在读函数中,char*表示从开关地址读取)

2) int(在写地址上表示有多少个wirte,在读函数上表示有多少个read)

我想要创建一个函数来获取读/写指针,但是我得到了一个错误 我的密码

#包括
使用名称空间std;
#包括
void func(void(*funcToCall)(字符*,整数))
{
char*temp=“zzz”;
函数调用(临时,3);
}
int main()
{
fstream-dskfl;
open(“aa.txt”,ios::out | ios::binary);
dskfl.close();
open(“aa.txt”,ios::out | ios::in | ios::binary);
字符ddd[]=“fffff”;
写((字符*)ddd,5);
dskfl.seekp(0);
func(dskfl.write);
dskfl.close();
}
我在网上出错了

func(dskfl.write);

Error   1   error C3867: 'std::basic_ostream<char,std::char_traits<char>>::write': function call missing argument list; use '&std::basic_ostream<char,std::char_traits<char>>::write' to create a pointer to member 
func(dskfl.write);
错误1错误C3867:'std::basic_ostream::write':函数调用缺少参数列表;使用“&std::basic_ostream::write”创建指向成员的指针

为什么请?

您可以使用
lambda

例如:

更改外部函数的签名以接收
std::函数

void func(std::function<void(char*, int)>&& funcToCall)

调用类的方法需要两条信息——类的实例和要调用的方法<代码>流*实例=&dskfl
void(fstream::*方法)(char*,int)=&fstream::write
然后使用
(实例->*方法)(char*,int)
调用该方法。@Vishal我改为“void func(fstream*实例,void(fstream::*方法)(char*,int)),并调用func(&dskfl,&(fstream::write))等函数;我得到错误4 IntelliSense:类型为“std::basic_ostream&(std::basic_ostream::*)(const char _Str,std::streamsize _Count)”的参数与类型为“void(std::basic_fstream::)(char*,int)”的参数不兼容
void func(std::function<void(char*, int)>&& funcToCall)
func([&dskfl](char* c, int i){ dskfl.write(c, i); });