- 575 名前:名無しさん@お腹いっぱい。 mailto:sage [2010/06/26(土) 09:57:52 ID:YCZ3L8nQ0]
- >>574
ポインタで受け取ったら、実体をコピーすればいいです。 > VB.net > Declare Function lstrcpy Lib "kernel32.dll" (ByVal lpString1 As String, ByVal lpString2 As Integer) As Integer UWSC DEF_DLL lstrcpyA(string, Long): Long: kernel32.dll DEF_DLL lstrlenA(string): Long: kernel32.dll ここで文字列を格納する場所の確保が必要です。 できればstrlenAで文字列の長さを調べ、その長さのバッファを確保したほうがいいんですけど・・・ とりあえず空白文字列を代入で確保しかないです。 好きな長さにするには文字列連結回数で調整ですね。 wav = AquesTalk_Synthe(str1, sp) str2 = " " //この長さを超えるとメモリが壊れる。 lstrcpyA(str2, wav) FPUT(fp, str2) ところで、.wav ファイルを開いているようですが、UWSCはテキストファイルしか扱えません。 仮に音声データでないとしたら、間違って再生してしまうような拡張子はやめるべきです。 メモリ破壊を防ぐには、lstrcpynA() 関数を使い、コピーする長さを限定します。 n = (str2とwavの短いほうを選択して代入) lstrcpynA(str2, wav, n)
|

|