質問ですが、APIを使用する時、引数に『LPCWSTR』とあった
のですが、Webで探してその引数をPWideCharで宣言したところ
APIを使用した所で、『WideCharとCharは互換性がありません』
とエラーになります。
どのような宣言をすればいいでしょうか?
WinXp + Delphi7です。
Windows.pasに
LPCWSTR = PWideChar;と書いてあるからあってます。
使い方を間違ってるだけだと。
aaaさん早速のご返事ありがとうございます。
使ったAPIは、PdhExpandWildCardPathでパフォマンスカウンタ(PDH.DLL)
関連です。
JEDIのjwapdh JwaPdhMsgをuseしたら発生しました。
jwapdh.PASでの宣言は以下の通りです。
function PdhExpandWildCardPath(szDataSource, szWildCardPath: LPCTSTR;
mszExpandedPathList: LPTSTR; var pcchPathListLength: DWORD; dwFlags: DWORD): PDH_STATUS; stdcall;
{$EXTERNALSYM PdhExpandWildCardPath}
尚、PWideCharをpCharにするとうまくいきましたが理由がわかりません。
理由がわかる方よろしくお願いします。
LPCTSTR = PChar
LPCWSTR = PWideChar
そもそもLPCWSTRでないから。
成る程、単純なミスでした。
よく確認すればよかったです。
ありがとうございました。
ツイート | ![]() |