RTC Forums
April 24, 2024, 12:11:19 AM *
Welcome, Guest. Please login or register.

Login with username, password and session length
 
   Home   Help Login Register  
Pages: [1]
  Print  
Author Topic: XE3 Issue?  (Read 5084 times)
joepasquariello
RTC License+
****
Posts: 35


« on: February 14, 2013, 11:39:36 PM »

Hello, I'm using RTC SDK 6.06, and I'm getting the error below when linking a C++ program that transfers a DataSet via remote function call. The program builds and runs fine in RAD Studio XE, but gets the error below when I try to build in XE3. I looked at the specified RTL header file Data.DB.hpp, and the version of PSExecuteStatement with the void* (Pointer) argument is deprecated.

Joe

[bcc32 Error] rtcDB.hpp(319): E2015 Ambiguity between '_fastcall Data::Db::TDataSet::PSExecuteStatement(const System::UnicodeString,Data::Db::TParams *) at c:\program files\embarcadero\rad studio\10.0\include\windows\rtl\Data.DB.hpp:3144' and '_fastcall Data::Db::TDataSet::PSExecuteStatement(const System::UnicodeString,Data::Db::TParams *,void *) at c:\program files\embarcadero\rad studio\10.0\include\windows\rtl\Data.DB.hpp:3146'
  Full parser context
    rtcServer.cpp(6): #include C:\RTCSDK\Lib\rtcDB.hpp
    rtcDB.hpp(33): namespace Rtcdb
    rtcDB.hpp(140): class Rtcdb::TRtcBaseDataSet
    rtcDB.hpp(339): decision to instantiate: int _fastcall Rtcdb::TRtcBaseDataSet::PSExecuteStatement(const System::UnicodeString,Data::Db::TParams *)
    --- Resetting parser context for instantiation...
    rtcDB.hpp(319): parsing: int _fastcall Rtcdb::TRtcBaseDataSet::PSExecuteStatement(const System::UnicodeString,Data::Db::TParams *)
Logged
cesarliws
Guest
« Reply #1 on: February 15, 2013, 12:33:24 AM »

Hi Joe,

Did you set "NO_STRICT #define" for this project?

If yes, can you comment it and build the project again?


Cesar Romero
Logged
joepasquariello
RTC License+
****
Posts: 35


« Reply #2 on: February 15, 2013, 01:20:33 AM »

Hello Cesar,

No, I don't have NO_STRICT defined. I've also found that the two BCB examples in the QuickStart folder, which build and run with 6.06 under XE, get linker errors with XE3.

I installed the RTC SDK to RAD Studio using the Lib\rtcSDK_C.bpk project file under both XE and XE3 (on different PCs). The install went fine in both cases.

Have you tried to build those two C++ Builder projects under RAD Studio XE3 using that package?

Joe
Logged
cesarliws
Guest
« Reply #3 on: February 15, 2013, 01:39:30 AM »

Joe,

Not yet, I just got a new notebook and right now I'm reinstalling my tools, it will be a long night Smiley

As soon as I have my box finished I'll try to build the demos with XE3 and let you know what I can find about that.


Cesar Romero
Logged
cesarliws
Guest
« Reply #4 on: February 17, 2013, 04:26:55 AM »

Hi Joe,

Please, add this directive to the rtcDeploy.inc file:

{$DEFINE RTC_DSNOPS}

Then build the rtcSDK_C package and your project.


Note: It will be default in the next release.

Regards,


Cesar Romero
Logged
joepasquariello
RTC License+
****
Posts: 35


« Reply #5 on: February 18, 2013, 08:21:39 PM »

Hi Cesar,

Thank you. I put in the directive, and that fixed the Build/Install problem. For some reason, with XE3, the default Intermediate Output path for the project is "Debug". I changed that to "." so that the path to the library files would still be RTCSDK\Lib.

Would you guys please consider adding C++ project files to allow build/install of rtcSDK_DBA and rtcSDK_Raw packages? I'm not sure what's in the DBA package, but I would like to be able to have the TCP and UDP client and server components on the C++ Builder palette.

Thanks very much.

Joe
Logged
D.Tkalcec (RTC)
Administrator
*****
Posts: 1881


« Reply #6 on: February 18, 2013, 09:51:24 PM »

1. Components from the rtcSDK_DBA package are already included in the rtcSDK_C package.

2. Components from the rtcSDK_RAW package are NOT included in the C++Builder package, because there is NO support for using them. Not in C++Builder and not in Delphi. These components are NOT advertised and I strongly recommend everyone who asks about them to NOT use them. The only reason these components still exist, is because of a few companies who are using them to communicate with hardware which does not have HTTP/S support.

These are low-level TCP/IP and UDP components, which do NOT work with any other RTC components. If you use raw TCP/IP or UDP components, you are working one layer above the OS API and it is your responsibility to implement the complete protocol. These components do NOT implement any kind of a protocol. Raw UDP components are not supported on any other platform than Win32 and to get raw TCP/IP working in blocking mode or on any other platform than Win32, you need to use special methods to notify the components when you are expecting more data, because there would be no events triggered otherwise.

To make a long story short, do NOT use raw TCP/IP or UDP components, because they are deprecated and there is absolutely no support for using them. Chances are high that these components will soon be removed completely from the RTC SDK.

Best Regards,
Danijel Tkalcec
Logged
joepasquariello
RTC License+
****
Posts: 35


« Reply #7 on: February 18, 2013, 11:28:55 PM »

Hi Daniel,

Thank you for your reply, and for your help on the XE3 question. I didn't realize the TCP and UDP clients and servers were deprecated.

Joe
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.024 seconds with 16 queries.