Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
IW 15.5.3 is out
#1
Hi guys,

new update is available: https://www.atozed.com/2023/12/intraweb-15-5-3/

This update contains an important fix for the 15.5 branch.

Enjoy!  Big Grin
Reply
#2
Hi Alexandre,

C++Builder 12
IW 15.5.3

I have the following error:

[ilink32 Fehler] Error: Nicht auflösbares externes '__fastcall Iwservercontrollerbase::TIWSSLOptions::SetPortW(const int)' referenziert von ...\WIN32\DEBUG\SERVERCONTROLLER.OBJ
[ilink32 Fehler] Error: Linken kann nicht ausgeführt werden

The class has probably been restructured compared to the previous version:

#pragma pack(push,4)
class PASCALIMPLEMENTATION TIWSSLOptions : public TIWServerControllerPersistentProperty
{
typedef TIWServerControllerPersistentProperty inherited;

protected:
System::UnicodeString FCertificatePassword;
int FPort;
TIWNonSSLRequest FNonSSLRequest;
TIWSSLVersion FVersion;
System::UnicodeString FCipherList;
System::UnicodeString FCipherSuites;
TIWSSLVersions FSSLVersions;
bool FEnableACME;
TIWSSLCertificateOptions* FCertificateOptions;
bool FSetOpenSSLPath;
void __fastcall SetCertificateOptions(TIWSSLCertificateOptions* const Value);
void __fastcall SetCertificatePassword(const System::UnicodeString Value);
void __fastcall SetDHParamsFile(const System::UnicodeString Value);
void __fastcall SetSetOpenSSLPath(const bool Value);
void __fastcall SetCipherList(const System::UnicodeString Value);
void __fastcall SetCipherSuites(const System::UnicodeString Value);
void __fastcall SetSSLVersions(const TIWSSLVersions Value);
void __fastcall SetEnableACME(const bool Value);
void __fastcall SetVersion(const TIWSSLVersion Value);
void __fastcall SetNonSSLRequest(const TIWNonSSLRequest Value);

void __fastcall SetPort(const int Value);

public:
virtual void __fastcall Init();
__fastcall virtual ~TIWSSLOptions();
virtual void __fastcall Assign(System::Classes::TPersistent* ASource);

__published:
__property System::UnicodeString CertificatePassword = {write=SetCertificatePassword};
__property System::UnicodeString DHParamsFile = {write=SetDHParamsFile};
__property TIWNonSSLRequest NonSSLRequest = {read=FNonSSLRequest, write=SetNonSSLRequest, default=0};
__property int Port = {read=FPort, write=SetPort, default=0};
__property TIWSSLVersion SSLVersion = {read=FVersion, write=SetVersion, default=5};
__property System::UnicodeString CipherList = {read=FCipherList, write=SetCipherList};
__property System::UnicodeString CipherSuites = {read=FCipherSuites, write=SetCipherSuites};
__property TIWSSLVersions SSLVersions = {read=FSSLVersions, write=SetSSLVersions, default=0};
__property bool EnableACME = {read=FEnableACME, write=SetEnableACME, default=1};
__property TIWSSLCertificateOptions* Certificate = {read=FCertificateOptions, write=SetCertificateOptions};
__property bool SetOpenSSLPath = {read=FSetOpenSSLPath, write=SetSetOpenSSLPath, default=1};
public:
/* TIWServerControllerPersistentProperty.Create */ inline __fastcall TIWSSLOptions(TIWServerControllerBase* AServerControllerBase) : TIWServerControllerPersistentProperty(AServerControllerBase) { }

};

Regards
Juergen
Reply
#3
Are you sure that you don't have any older version in your library path, in your C++Builder options?

This version was extensively tested in C++Builder 12 and no errors have been found.
Reply
#4
I have installed C++Builder 12 only, all other directories, files and path entries has been removed.

The function belongs to the Microsoft SDK:

BOOL SetPort(
  _In_ LPTSTR pName,
  _In_ LPTSTR pPortName,
  _In_ DWORD  dwLevel,
  _In_ LPBYTE pPortInfo
);

Unicode- und ANSI-Name
SetPortW (Unicode) und SetPortA (ANSI)

Winspool.h
Winspool.lib/Winspool.a

The function is used by the following modules:

IdIOHandler.pas
IdPMCast.pas
IdTCPClient.pas
IdUDPBase.pas
IdUDPClient.pas
IdDNSResolver.pas

There was a similar problem before,
when wininet.lib/wininet.a failed in IWUtils.hpp (IW15.2.65),
That's why I tried to integrate the library myself:

#if _WIN64
#pragma message "Winspool.a"
#pragma link "Winspool.a"
#elif _WIN32
#pragma message "Winspool.lib"
#pragma link "Winspool.lib"
#endif

But it didn't work.

The Embarcadero header file winspool.h seems to be OK.
I have installed version Microsoft Windows 10 - SDK 21.0.

Is this the correct version ?
Reply
#5
I also get this error with IW 15.5.3 / C++ Builder 11.3

The way to reproduce the error is to assign SSLOptions->Port in code, assigning in the IDE is works ok.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)