私はC ++の初心者で、Excel vbaからアクセスされるC ++でDLLを作成しようとしています.DLLの内部には、文字列を引数として取り、文字列を変更し、最後に変更された文字列がvba。
手順をもう一度:
1.文字列ポインタを引数とする関数を持つdll。
2.vba の空の文字列が関数に渡されます。
3. dll が文字列を変更または操作します。
4.最後に、変更された文字列がvbaで使用されます。
dll 内の関数は次のようになります。
extern "C"_declspec(dllexport) void WINAPI ModifyStr(char* str) { Str = "Hello" } コンパイラによって次のエラーがスローされます。「文字列定数から char* への非推奨の変換」
私は書いて関数を修正しました
_declspec(dllexport) void WINAPI ModifyStr(string** Str) { *Str = new string("hello"); このコードは適切にコンパイルされていますが、vba から関数を呼び出そうとすると、プログラムがクラッシュしました。この問題を解決し、エラーなしで dll をビルドしてください。