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

时间:2016-10-31 18:29:06

标签: c++-cli

我在dll中有以下功能:

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

我知道如何处理前两个参数。我有一个用户输入数据的文本框,文本框返回String ^类型的变量。我不知何故需要从该文本框中获取数据并执行某些操作,以便我可以将此函数写入void * data参数。

2 个答案:

答案 0 :(得分:0)

您可以使用此表单。 我使用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();
}

}

答案 1 :(得分:0)

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

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

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

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