OK、これは Linux の GCC で問題なくコンパイルされます。
char * _v3_get_msg_string(void *offset, uint16_t *len) {/*{{{*/
char *s;
memcpy(len, offset, 2);
*len = ntohs(*len);
s = malloc(*len+1);
memset(s, 0, *len+1);
memcpy(s, offset+2, *len);
s[*len] = '\0';
*len+=2;
return s;
}/*}}}*/
ただし、次の行のために、Windowsへの移植に問題があります...
memcpy(s, offset+2, *len);
無効なポインターであるため、VC++ はポインターをオフセットしたくありません。プロジェクト全体がextern "C"の下で構築されているため、CPPがポインターオフセットを許可しないという通常の警告は意味がありません。
現在、これは多くの機能の 1 つにすぎず、これに対する答えを見つけることで、すべてを修正することができます。ライブラリ プロジェクトを最初から書き直す必要はなく、MinGW でビルドしたくありません。これを行うには、私が行方不明で、Google で見つけられない方法が必要です。