我在dll中有以下功能:
aisgdll_setinfo(int dev, set_field_code field, void *data);
我知道如何处理前两个参数。我有一个用户输入数据的文本框,文本框返回String ^类型的变量。我不知何故需要从该文本框中获取数据并执行某些操作,以便我可以将此函数写入void * data参数。
答案 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;