|
保護違反が発生する理由ですが、Jre2GetMatchInfo_V318に渡す第5パラメーター
がNULLのせいってことになります。
ret = pfnJreGetMatchInfo_V318(&jre, data.pszTargetConved, data.cchTarget
Conved, FALSE, &data);
のように&dataを渡せば大丈夫です。
ちなみにこちらでテストした例としては以下のようになります。
JREFUZZYDATA data;
data.dwSize = sizeof(JREFUZZYDATA);
int ret = Fuzzy_Open(&data, false);
if (!ret) {
return 1;
}
char* find = "test";
char* input = "aaaaa_test_aaaaa";
// 検索用の正規表現をコンバート
ret = Fuzzy_ConvertFindString(&data, find, 1);
if (!ret)return false;
char* findConverted;
findConverted = data.pszFindConved;
// 検索対象をコンバート
ret = Fuzzy_ConvertTarget(&data, input);
if (!ret) {
return 1;
}
// jre2 open
JRE2 jre;
jre.dwSize = sizeof(JRE2);
ret = Jre2Open(&jre);
if (!ret) {
return 1;
}
// jre2 compile
ret = Jre2Compile(&jre, findConverted);
if (!ret) {
return 1;
}
jre.nStart = 0;
// 以下の関数を呼び出すと「0x00000000 で例外がスローされました」と表示さ
れます
ret = Jre2GetMatchInfo_V318(&jre, data.pszTargetConved, data.cchTargetCo
nved, FALSE, &data);
if (!ret) {
return 1;
}
return 0;
|
|