PowerBuilder.NET (12.1 Build 7217) 어셈블리를 호출하는 C# 어셈블리가 있습니다. PowerBuilder 소스 코드는 아래에 포함되어 있습니다. 문자열의 오히려 단순한 참/거짓 평가라는 것을 알 수 있습니다.PowerBuilder.NET 어셈블리 호출 C# 어셈블리에서 항상 Null 또는 빈 문자열을 반환합니다.
PB.NET 어셈블리가 C#의 창에 의해 호출되면 예상 결과 "true"를 반환합니다. 동일한 코드가 C# 어셈블리에서 호출되면 코드는 ""을 반환하거나 빈 문자열을 반환합니다.
PB.NET 어셈블리의 데이터 저장소 상호 작용에 이르기까지 문제를 좁힐 수있었습니다. PB.NET 어셈블리가 다른 어셈블리에서 호출되면 DataStore는 항상 0 행을 가지며 빈 문자열 만 포함합니다. 전에 본 사람이 본 적이 있습니까?
// Create instance of Datastore
ldsExpression = CREATE DataStore
// Set data object
ldsExpression.DataObject = "d_condition_expression"
//// Setting datawindow expression
lsExpression = 'condition_expression.expression = ~"' + asConditionExpression + '~"'
//// Apply Expression
lsError = ldsExpression.Modify(lsExpression)
IF len(lsError) = 0 THEN
ldsExpression.InsertRow(0)
//get the result
lsResult = ldsExpression.GetItemString(1,"condition_expression")
ELSE
lsResult = lsError
END IF
// Destroy instance of ldsExpression
DESTROY(ldsExpression)
RETURN lsResult
데이터 객체는 파워 빌더 어셈블리에 포함된다. 문제는 다른 어셈블리에서 호출 할 수 없다는 것입니다 (응용 프로그램에서 수행해야하는). PowerBuilder.NET 어셈블리는 Windows 또는 Windows 서비스에 의해서만 호출 할 수 있습니다. Visual Studio에서 Output Type을 Library로 변경하면 PB.NET에 대한 호출이 더 이상 작동하지 않습니다. 아래에서 찾은 해결 방법을 게시했습니다. –