C#에서 C++로 일부 코드를 포팅 할 때 일반 객체 대신 void*
을 사용하는 데 문제가 있습니다. 정의되지 않은 포인터를 함수의 매개 변수로 전달하려고 시도했지만 성공하지 못했습니다. 내가 매개 변수로 통과 할 때void *를 함수의 매개 변수로 사용할 수 있습니까?
In file included from StringSocket.h:16,
from StringSocket.cpp:8:
ReceiveRequest.h: In member function ‘void ReceiveRequest::runCallback(std::string, ssError)’:
ReceiveRequest.h:30: error: no match for call to ‘(ReceiveRequest::receiveCallback) (std::string&, ssError&, void*&)’
/home/jsander/boost/include/boost/function/function_template.hpp:761: note: candidates are: R boost::function3<R, T1, T2, T3>::operator()(T0, T1, T2) const [with R = void, T0 = std::string*, T1 = ssError&, T2 = void*]
왜 내 void*
변수는 void*&
될 않습니다
class ReceiveRequest
{
typedef boost::function<void (std::string *message, ssError& e, void *payload) > receiveCallback;
public:
receiveCallback Callback;
void* payload;
ReceiveRequest(receiveCallback _Callback, void* _payload)
{
Callback = _Callback;
payload = _payload;
}
void runCallback (std::string message, ssError e)
{
Callback(message, e, this->payload);
}
~ReceiveRequest() { }
};
그리고 여기에 내가받을 오류입니다 : 여기
내 클래스에 코드? 이 문제를 해결하려면 기능을 변경하여void*&
을 사용하여 문제를 해결해야합니까?
C#을 C++로 이식하는 이유는 무엇입니까? – Raptor
학교 지정을 위해 – hededo
내 게시물을 정리 해준 Jonathon에게 감사드립니다. – hededo