PowerBuilder.NET(12.1 Build 7217) アセンブリを呼び出す C# アセンブリがあります。PowerBuilder のソース コードを以下に示します。文字列の単純な true/false 評価であることがわかります。
PB.NET アセンブリが C# の Window によって呼び出されると、期待される結果 "true" が返されます。同じコードが C# アセンブリによって呼び出されると、コードは "" または空の文字列を返します。
問題を PB.NET アセンブリの DataStore 相互作用に絞り込むことができました。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