This document is to help you quickly resolve some .NET COBOL Invoke errors that may need some additional assistance. Internally, the need for some of these edits may be due to Marshalling. PROBLEM: INVOKE – Compiler Error – Points to there is no method Named “abc” with a signature that conforms to the arguments specified in the INVOKE Statement. The method is valid, the parameters matched by type, by all indications. The problem was that one of the parameters was an “01” level with detail below it all of display type. All indications are this should be valid. SOLUTION: is to check each COBOL field level to make sure it has no detail below it, and the data types match. Note: Always verify use of By Value and By Reference, as By Reference allows data to return, By Value, sends it, but does not get it back. COBOL programmers are used to passing 01 with detail to 01 without detail. This is not available in the mixed language world. Example: 01 MyDataWithSubFields. 05 Field1 PIC X(20). 05 Field2 PIC X(30). Error 15 There is no method named 'VB_READ_RECRD' with a signature that conforms to the arguments specified in INVOKE statement. INVOKE statement is ignored. c:\MyModule.cob 2830 Here is how it was used in the Invoke that generated the error: INVOKE CMN2 "VB_READ_RECRD" USING BY REFERENCE MyDataWithSubFields IN-FILE-NAME WS-VB-CLOSE-AFTER-READ RETURNING WS-VB-RETURN-VALUE. The solution was to create an 01 level such as “01 MyDataPICX PIC X(40). Move “MyData to MyDataPicX”. Change the Invoke to use MyDataPicX. New COBOL could look like this: MOVE MyDataWithSubFields TO MyDataPicX. INVOKE CMN2 "VB_READ_RECRD" USING BY REFERENCE MyDataPicX. IN-FILE-NAME WS-VB-CLOSE-AFTER-READ RETURNING WS-VB-RETURN-VALUE. MOVE MyDataPicX TO MyDataWithSubFields.