C++-CLI 如何将 String^(从文本框)转换为采用 void* 类型变量的函数将接受的内容?

C++-CLI how do I convert String^ (from a textbox) to something that a function which takes void* type variables, will accept?

我有以下来自 dll 的函数:

aisgdll_setinfo(int dev, set_field_code field, void *data);

我知道如何处理前两个参数。我有一个用户输入数据的文本框,文本框 returns 是一个 String^ 类型的变量。我不知何故需要从那个文本框中获取数据并做一些事情,这样我就可以将它写入此函数的 void *data 参数。

您可以使用此表格。 我使用 Thread::Sleep 来防止处理中的滥用。虽然您的线程没有改变屏幕的状态将被更新。

void solve()
{
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Threading;
Thread^ bot_thread = gcnew Thread(gcnew ThreadStart(bot_run));
bot_thread->Start(); 

PictureBox^ PB_LoadGIF = gcnew PictureBox();
PB_LoadGIF->Visible = true;
while (bot_thread->ThreadState == ThreadState::Running)
{
    Thread::Sleep(1000);
    PB_LoadGIF->Parent->Refresh();
}

}

在网上进一步研究后,我找到了一些解决我遇到的问题的方法。我将检索到的值插入所需指针的函数。我认为这些解决方案可以由其他人根据自己的目的进行调整。用于将 Visual Studio 文本框 String^ 转换为 char*:

char* iData = (char*)Marshal::StringToHGlobalAnsi(activeBox->Text).ToPointer();

当我需要从文本框中获取浮点数时,我使用了以下方法:

int anInteger = (int)((Convert::ToDouble(activeBox->Text))*10);
int *iData = &anInteger;