读书人

bcb6升级2010有关问题

发布时间: 2012-03-20 14:01:11 作者: rapoo

bcb6升级2010问题
我原先工程调用动态库的代码编译不过去了。具体如下

HINSTANCE h1;

HANDLE __stdcall (*Open_Com)(int port, int baud, int data, int parity, int stop);

void __fastcall TForm1::FormCreate(TObject *Sender)
{
AnsiString s = GetCurrentDir() + "\\CJ201api.dll";
h1 = LoadLibrary(s.c_str());
if( h1 == NULL )
{
Memo1->Lines->Add("Load CJ201api.dll failed");
return;
}
else
{
Memo1->Lines->Add("Load CJ201api.dll successed!");
}
(void *)Open_Com = (void *)GetProcAddress(h1,"Open_Com");
}

(void *)Open_Com = (void *)GetProcAddress(h1,"Open_Com"); 这语句报错,[BCC32 Error] Unit1.cpp(53): E2277 Lvalue required

[解决办法]
可以编译过去,这是我的完整代码

C/C++ code
void __fastcall TForm8::Button1Click(TObject *Sender){HINSTANCE h1;typedef HANDLE __stdcall myOpen_Com (int port, int baud, int data, int parity, int stop);myOpen_Com * Open_Com;AnsiString s = GetCurrentDir() + "\\CJ201api.dll";  h1 = LoadLibrary(s.c_str());  if( h1 == NULL )  {//  Memo1->Lines->Add("Load CJ201api.dll failed");  return;  }  else  {//  Memo1->Lines->Add("Load CJ201api.dll successed!");  }  Open_Com = (myOpen_Com *)GetProcAddress(h1,"Open_Com");  HANDLE dev;   dev = Open_Com( 1,9600,8,0,0 );} 

读书人网 >C++ Builder

热点推荐