This is the most frequent cause of R0035. It usually happens when moving an application from a development machine to a user's machine.
Check the PowerBuilder Control Name:
Check Dependencies (The "Dependency Hell"):
| Practice | Benefit | |----------|---------| | Use runtime packager | Ensures all dependencies are correctly registered. | | Deploy with XCOPY | Simple file copy avoids registry corruption. | | Maintain version consistency | Prevents mismatch between EXE and PBVM. | | Test on clean VM | Identifies missing dependencies early. | | Document runtime version | Include PB version in deployment notes. |
Run the EXE from a command prompt with the /pbversion switch (if supported by the app) or inspect the EXE's version resource. Ensure the matching PBRTCxxx.DLL is in C:\Windows\SysWOW64 (for 32-bit) or alongside the EXE.
Some PowerBuilder runtimes depend on older VC++ runtimes (e.g., VC++ 2005, 2008). Install all versions from Microsoft.
If you want, I can:
Troubleshooting PowerBuilder Application Execution Error R0035 powerbuilder application execution error r0035
If you are a PowerBuilder developer or an IT administrator, encountering the "Application Execution Error R0035" can be a frustrating roadblock. This error typically surfaces during the application startup phase or when a specific window is being instantiated, essentially halting the program before it can perform its intended tasks.
In this guide, we will break down what this error means, its common causes, and the step-by-step solutions to get your application back up and running. What is Error R0035?
In the PowerBuilder ecosystem, execution errors prefixed with "R" refer to Runtime Errors. Specifically, Error R0035 indicates a "Link to reference failed" or an "Invalid object reference."
Essentially, the PowerBuilder Virtual Machine (PBVM) is trying to access a specific object, function, or library mentioned in the code, but it cannot find the definition or the "link" to that object is broken at runtime. Common Causes of R0035 There are three primary reasons why this link fails:
Missing or Mismatched PBLs/PBDs: The application is looking for a compiled library (PBD or DLL) that isn't in the system path or the application folder.
Version Mismatch: You might be running a newer version of the application executable (EXE) with older versions of the runtime libraries (PBVM DLLs), or vice-versa.
Corrupt Object Definitions: An object (like a DataWindow or a User Object) within a library may be corrupt or failed to compile correctly during the build process. This is the most frequent cause of R0035
Deployment Path Issues: The application’s search path (Environment Path) does not include the directory where the PowerBuilder runtime files are located. Step-by-Step Solutions 1. Verify the Runtime Files
The most common culprit is a missing runtime DLL. Depending on your version of PowerBuilder (e.g., 2019, 2022, or older versions like 12.5), ensure the following files are in the same folder as your EXE or in the Windows System Path: pbvm.dll pblib.dll pbtra.dll
Corresponding database drivers (e.g., pbtra.dll for SQL Server or pbor6.dll for Oracle). 2. Check the Deployment Search Path PowerBuilder looks for its libraries in a specific order: The directory where the EXE is located. The current directory. The Windows System directory. Directories listed in the PATH environment variable.
Ensure that if you have multiple versions of PowerBuilder installed on a machine, the System PATH isn't pointing to an older version’s Shared folder, causing a conflict. 3. Perform a "Full Build" and Re-deploy
Incremental builds can sometimes lead to "ghost" references where the compiler thinks an object exists in a certain state, but the compiled PBD doesn't match. Open your PowerBuilder IDE. Go to the Project Object. Select Full Build instead of Incremental Build. Regenerate all PBDs and the EXE. 4. Inspect the Application Log
If the error occurs on a client machine but not on your development machine, use a tool like Process Monitor (ProcMon) from Microsoft Sysinternals. Run ProcMon and filter by your application's EXE name.
Look for "FILE NOT FOUND" results. This will tell you exactly which DLL or PBD the application is searching for right before it throws the R0035 error. 5. Validate DataWindow Objects Check the PowerBuilder Control Name:
Error R0035 often triggers when a Window tries to open a DataWindow that hasn't been included in the PBDs. Check your PBR (PowerBuilder Resource) file to ensure all dynamically assigned DataWindows or images are explicitly included in the build. Conclusion
The PowerBuilder Application Execution Error R0035 is almost always a deployment or environment configuration issue. By ensuring your runtime DLLs match your EXE version and performing a clean "Full Build," you can resolve the majority of these cases.
If the problem persists, verify that the client machine has the correct Visual C++ Redistributable packages installed, as modern PowerBuilder runtimes depend on these to execute their core C++ logic.
Application Execution Error R0035 in PowerBuilder is defined as: "System error."
This is a generic, low-level error indicating that the application attempted to perform an invalid operation at the system level. It is often the "catch-all" error when PowerBuilder encounters an issue it doesn't have a specific error code for.
Here is a comprehensive guide to troubleshooting and resolving R0035.
PowerBuilder is not backward or forward compatible between major versions.