{"id":214,"date":"2009-09-26T21:39:53","date_gmt":"2009-09-26T16:09:53","guid":{"rendered":"http:\/\/live-42gears-site.pantheonsite.io\/blog\/?p=214"},"modified":"2023-01-06T08:34:10","modified_gmt":"2023-01-06T08:34:10","slug":"debugging-cerapiinvoke-calls","status":"publish","type":"post","link":"https:\/\/www.42gears.com\/es\/blog\/debugging-cerapiinvoke-calls\/","title":{"rendered":"Debugging CeRAPIInvoke Calls"},"content":{"rendered":"<p>RAPI (Remote API) dlls are loaded by rapiclnt.exe on the Windows Mobile device when CeRapiInvoke API is called by the desktop application.  CeRapiInvoke is a general-purpose API to remotely execute a function on a Windows Mobile device that is connected to the desktop over ActiveSync.<\/p>\n<p>To debug your RAPI dll, do the following.<\/p>\n<p>1. Launch Visual Studio and Open the RAPI dll project (.sln, .vcproj) in debug mode.<\/p>\n<p>2. Go to Debug Menu and click on Attach to process menu item.<\/p>\n<p>3. On the transport screen (see below), change the transport selection to Smart Device.<br \/>\nrapiclnt.exe running on the device<\/p>\n<div id=\"attachment_215\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-215\" src=\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png\" alt=\"Attach to rapiclnt.exe on the device\" title=\"rapiclnt\" width=\"300\" height=\"207\" class=\"size-medium wp-image-215\"><\/a><p id=\"caption-attachment-215\" class=\"wp-caption-text\">Attach to rapiclnt.exe on the device<\/p><\/div>\n<p>4. On the above screen, select rapiclnt.exe and click on Attach button. This step makes rapiclnt.exe and all modules loaded by it debuggable as long as debugging information is available to the debugger.<\/p>\n<p>5. Now locate the function that you want to debug in source files and insert the breakpoint (or use DebugBreak function) at an appropriate location. You will see the inactive breakpoint icon. It means this module is not currently loaded. Thats okay as we know we have not yet called the function from the desktop application. When the function is eventually called, it will result in loading of the RAPI dll by rapiclnt.exe.<\/p>\n<p>6. Now start the desktop side application. As CeRapiInvoke API is called, breakpoints will become active and you will see the control breaking at the first breakpoint.<\/p>\n<p>From here onwards you can just debug the dll as you would debug normal applications.<\/p>\n<p>Note: If you want debug both desktop application and RAPI dll, you should open the two projects in separate instances of Visual Studio IDE.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>RAPI (Remote API) dlls are loaded by rapiclnt.exe on the Windows Mobile device when CeRapiInvoke API is called by the desktop application. CeRapiInvoke is a general-purpose API to remotely execute a function on a Windows Mobile device that is connected to the desktop over ActiveSync. To debug your RAPI dll, do the following. 1. Launch&hellip;<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[39,8,31],"tags":[51,47],"class_list":["post-214","post","type-post","status-publish","format-standard","hentry","category-development","category-general","category-windows-mobile","tag-rapi","tag-windows-mobile"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Debugging CeRAPIInvoke Calls - 42Gears Mobility Systems<\/title>\n<meta name=\"description\" content=\"42Gear&#039;s blog has everything you need to future-proof your business. CeRapiInvoke is a general-purpose API to remotely execute a function.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Debugging CeRAPIInvoke Calls\" \/>\n<meta property=\"og:description\" content=\"42Gear&#039;s blog has everything you need to future-proof your business. CeRapiInvoke is a general-purpose API to remotely execute a function.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/\" \/>\n<meta property=\"og:site_name\" content=\"42Gears Mobility Systems\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/42gears\" \/>\n<meta property=\"article:published_time\" content=\"2009-09-26T16:09:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-06T08:34:10+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png\" \/>\n<meta name=\"author\" content=\"42Gears Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@42Gears\" \/>\n<meta name=\"twitter:site\" content=\"@42Gears\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"42Gears Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/\"},\"author\":{\"name\":\"42Gears Team\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d\"},\"headline\":\"Debugging CeRAPIInvoke Calls\",\"datePublished\":\"2009-09-26T16:09:53+00:00\",\"dateModified\":\"2023-01-06T08:34:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/\"},\"wordCount\":289,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.42gears.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png\",\"keywords\":[\"RAPI\",\"Windows Mobile\"],\"articleSection\":[\"Development\",\"General\",\"Windows Mobile\"],\"inLanguage\":\"es-ES\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/\",\"url\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/\",\"name\":\"Debugging CeRAPIInvoke Calls - 42Gears Mobility Systems\",\"isPartOf\":{\"@id\":\"https:\/\/www.42gears.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png\",\"datePublished\":\"2009-09-26T16:09:53+00:00\",\"dateModified\":\"2023-01-06T08:34:10+00:00\",\"description\":\"42Gear's blog has everything you need to future-proof your business. CeRapiInvoke is a general-purpose API to remotely execute a function.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#breadcrumb\"},\"inLanguage\":\"es-ES\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#primaryimage\",\"url\":\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png\",\"contentUrl\":\"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.42gears.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Debugging CeRAPIInvoke Calls\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.42gears.com\/#website\",\"url\":\"https:\/\/www.42gears.com\/\",\"name\":\"42Gears Mobility Systems\",\"description\":\"Mobile Device Management (MDM), Mobile Security &amp; Mobile Device Lockdown\",\"publisher\":{\"@id\":\"https:\/\/www.42gears.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.42gears.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es-ES\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.42gears.com\/#organization\",\"name\":\"MDM - 42Gears\",\"url\":\"https:\/\/www.42gears.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png\",\"contentUrl\":\"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png\",\"width\":499,\"height\":330,\"caption\":\"MDM - 42Gears\"},\"image\":{\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/42gears\",\"https:\/\/x.com\/42Gears\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d\",\"name\":\"42Gears Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@id\":\"https:\/\/www.42gears.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g\",\"caption\":\"42Gears Team\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Debugging CeRAPIInvoke Calls - 42Gears Mobility Systems","description":"42Gear's blog has everything you need to future-proof your business. CeRapiInvoke is a general-purpose API to remotely execute a function.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/","og_locale":"es_ES","og_type":"article","og_title":"Debugging CeRAPIInvoke Calls","og_description":"42Gear's blog has everything you need to future-proof your business. CeRapiInvoke is a general-purpose API to remotely execute a function.","og_url":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/","og_site_name":"42Gears Mobility Systems","article_publisher":"https:\/\/www.facebook.com\/42gears","article_published_time":"2009-09-26T16:09:53+00:00","article_modified_time":"2023-01-06T08:34:10+00:00","og_image":[{"url":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png","type":"","width":"","height":""}],"author":"42Gears Team","twitter_card":"summary_large_image","twitter_creator":"@42Gears","twitter_site":"@42Gears","twitter_misc":{"Written by":"42Gears Team","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#article","isPartOf":{"@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/"},"author":{"name":"42Gears Team","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d"},"headline":"Debugging CeRAPIInvoke Calls","datePublished":"2009-09-26T16:09:53+00:00","dateModified":"2023-01-06T08:34:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/"},"wordCount":289,"commentCount":0,"publisher":{"@id":"https:\/\/www.42gears.com\/#organization"},"image":{"@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#primaryimage"},"thumbnailUrl":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png","keywords":["RAPI","Windows Mobile"],"articleSection":["Development","General","Windows Mobile"],"inLanguage":"es-ES","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/","url":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/","name":"Debugging CeRAPIInvoke Calls - 42Gears Mobility Systems","isPartOf":{"@id":"https:\/\/www.42gears.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#primaryimage"},"image":{"@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#primaryimage"},"thumbnailUrl":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png","datePublished":"2009-09-26T16:09:53+00:00","dateModified":"2023-01-06T08:34:10+00:00","description":"42Gear's blog has everything you need to future-proof your business. CeRapiInvoke is a general-purpose API to remotely execute a function.","breadcrumb":{"@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#breadcrumb"},"inLanguage":"es-ES","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/"]}]},{"@type":"ImageObject","inLanguage":"es-ES","@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#primaryimage","url":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png","contentUrl":"http:\/\/live-42gears-site.pantheonsite.io\/wp-content\/uploads\/2009\/09\/rapiclnt-300x207.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.42gears.com\/nl\/blog\/debugging-cerapiinvoke-calls\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.42gears.com\/es\/"},{"@type":"ListItem","position":2,"name":"Debugging CeRAPIInvoke Calls"}]},{"@type":"WebSite","@id":"https:\/\/www.42gears.com\/#website","url":"https:\/\/www.42gears.com\/","name":"42Gears Mobility Systems","description":"Mobile Device Management (MDM), Mobile Security &amp; Mobile Device Lockdown","publisher":{"@id":"https:\/\/www.42gears.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.42gears.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es-ES"},{"@type":"Organization","@id":"https:\/\/www.42gears.com\/#organization","name":"MDM - 42Gears","url":"https:\/\/www.42gears.com\/","logo":{"@type":"ImageObject","inLanguage":"es-ES","@id":"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png","contentUrl":"https:\/\/www.42gears.com\/wp-content\/uploads\/2018\/12\/Featured-Image-42Gears-logo.png","width":499,"height":330,"caption":"MDM - 42Gears"},"image":{"@id":"https:\/\/www.42gears.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/42gears","https:\/\/x.com\/42Gears"]},{"@type":"Person","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/28a14f2c32de4a7903ac672579a88a2d","name":"42Gears Team","image":{"@type":"ImageObject","inLanguage":"es-ES","@id":"https:\/\/www.42gears.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7d257fb658a429b8607872336eac3833a8314ca3ca67d72c90ceeddc7700c42e?s=96&d=mm&r=g","caption":"42Gears Team"}}]}},"author_meta":{"ID":"7","user_nicename":"42gears","user_email":"42gears@gmail.com","user_registered":"2015-07-15 04:55:37","display_name":"42Gears Team","first_name":"42Gears","last_name":"Team"},"_links":{"self":[{"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/posts\/214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/comments?post=214"}],"version-history":[{"count":2,"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/posts\/214\/revisions"}],"predecessor-version":[{"id":85436,"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/posts\/214\/revisions\/85436"}],"wp:attachment":[{"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/media?parent=214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/categories?post=214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.42gears.com\/es\/wp-json\/wp\/v2\/tags?post=214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}