構造体の単一の属性に複数の値を入れる必要があります。値を受け取る属性はLPSTRです。これをすべてベクトル、コンパイル、それは私が望むように動作しません。構造体の単一の属性に複数の値を入れる
私のstruct:
typedef struct _wfs_pin_caps
{
WORD wClass;
WORD fwType;
............More...............
BOOL bIDConnect;
WORD fwIDKey;
WORD fwValidationAlgorithms;
WORD fwKeyCheckModes;
LPSTR lpszExtra; //This attribute must receive more than one value
} WFSPINCAPS, * LPWFSPINCAPS;
私がやろうとしているとして:
HRESULT WINAPI WFPGetInfo(HSERVICE hService, DWORD dwCategory, LPVOID lpQueryDetails, DWORD dwTimeOut, HWND hWnd, REQUESTID ReqID) {
...
result = WFMAllocateMore(sizeof(WFSPINCAPS), lpWFSResult, &lpWFSResult->lpBuffer);
...
//This Values
vector<LPSTR> Tokens;
Tokens[1] = (LPSTR)"Value1";
Tokens[2] = (LPSTR)"Value2";
Tokens[3] = (LPSTR)"Value4";
Tokens[4] = (LPSTR)"Value5";
PinCapabilities.lpszExtra = (LPSTR)&Tokens; //Pass HERE
memcpy(lpWFSResult->lpBuffer,&PinCapabilities,sizeof(WFSPINCAPS));
...
return WFS_SUCCESS;
コードを少なくして問題を再現できますか? – silentboy
私は質問 –
を編集します。あなたがやろうとしていることは明らかではありませんが、上からは、sizeof(WFSPINCAPS)はコンパイル時に決まる定数であることに注意してください。それは魔法のように "Value1"らの長さを組み込むためには増加しません。 –