私は次のような構造と関数を手に入れました:
struct MYOVERLAPPED : public OVERLAPPED
{
//...
};
void func1(std::unique_ptr<MYOVERLAPPED> pBuf)
{
//...
};
func1-functionに渡したいMYOVERLAPPEDへのポインターを取得しています。私が遭遇する問題は、何を試しても次のエラーが発生することです。
私がすでに試したことは次のとおりです:Try1:
std::unique_ptr<OVERLAPPED> pOver(//....)
HandleAcceptIndication(std::move(pOver));
エラー:エラー1エラーC2440:「初期化中」:「_OVERLAPPED**」から「MYOVERLAPPED*」に変換できません
Try2:
HandleAcceptIndication(new ACCEPT_OVERLAPPED);
エラー1エラーC2664:'HandleAcceptIndication':パラメータ1を'MYOVERLAPPED*'から'std :: unique_ptr<_Ty>'に変換できません
OVERLAPPEDからMYOVERLAPPEDへのこのキャストされたポインターを関数に渡す方法と、何気なく使用しているのにTry2も機能しない理由を誰もが知ってstd::unique_ptr<MYOVERLAPPED> pO(new MYOVERLAPPED) います...?