<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-157838544004412885</id><updated>2024-10-06T22:25:46.865-07:00</updated><category term="Windows CE"/><category term="Visual Studio 2005"/><category term="C#"/><category term=".NET"/><category term="C++"/><category term="Windows"/><category term=".NET Compact Framework"/><category term=".NET Framework"/><category term=".pdf"/><category term="ATL"/><category term="Active Sync"/><category term="C1001"/><category term="C2872"/><category term="Device Emulator"/><category term="Disposable"/><category term="Garbage Collector"/><category term="Generic Lists"/><category term="Heap"/><category term="IServiceProvider"/><category term="Interop"/><category term="Localization"/><category term="MemoryStream"/><category term="Microsoft"/><category term="Misc"/><category term="Motivational"/><category term="My Documents"/><category term="Platform Builder"/><category term="ProcessCmdKey"/><category term="RNDIS"/><category term="Registry"/><category term="Spy++"/><category term="Subversion"/><category term="System.Windows.Forms.Button"/><category term="Windows Explorer"/><category term="XmlSerializer"/><category term="array"/><category term="compiler"/><category term="error"/><category term="pointer"/><category term="res2res"/><category term="svn diff"/><title type='text'>The Morning Callstack</title><subtitle type='html'>Windows CE, C# .NET, .NET CF, C++ blog.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-8439047978594389535</id><published>2020-02-04T07:38:00.004-08:00</published><updated>2020-02-04T07:38:58.607-08:00</updated><title type='text'>Execute a Python script using C#</title><content type='html'>The evolution of the Python ecosystem of libraries dedicated to, among others, machine learning has been driven by the languages popularity among data scientists. In order to bring Python to large-scale business, data-driven applications, it is possible to run a python script by using C# and retrieving its output for further presentation or storage.&lt;br /&gt;
One of the best posts on the topic can be found on CodeProject:&lt;br /&gt;
&lt;a href=&quot;https://www.codeproject.com/Articles/5165602/Using-Python-Scripts-from-a-Csharp-Client-Includin&quot;&gt;https://www.codeproject.com/Articles/5165602/Using-Python-Scripts-from-a-Csharp-Client-Includin&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/8439047978594389535/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2020/02/execute-python-script-using-c.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/8439047978594389535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/8439047978594389535'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2020/02/execute-python-script-using-c.html' title='Execute a Python script using C#'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-5081210361382907113</id><published>2017-05-15T22:23:00.000-07:00</published><updated>2017-05-15T22:23:17.735-07:00</updated><title type='text'>WPF Recipes - Binding of the RichTextBox Text</title><content type='html'>&lt;br /&gt;
&lt;code&gt;
&amp;lt;RichTextBox&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;FlowDocument&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Paragraph&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Run Text=&quot;{Binding MyText}&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Paragraph&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/FlowDocument&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;lt;/RichTextBox&amp;gt;&lt;br /&gt;
&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/5081210361382907113/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2017/05/wpf-recipes-binding-of-richtextbox-text.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/5081210361382907113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/5081210361382907113'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2017/05/wpf-recipes-binding-of-richtextbox-text.html' title='WPF Recipes - Binding of the RichTextBox Text'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-19308564982908527</id><published>2015-12-04T21:49:00.000-08:00</published><updated>2017-04-25T10:28:40.772-07:00</updated><title type='text'>Windows Search Indexer High CPU</title><content type='html'>After the latest upgrade to Windows 10, I saw very high CPU consumption from two processes,&amp;nbsp;SearchProtocolHost.exe and SearchIndexer.exe.&lt;br /&gt;
The CPU was at 80-90%. I looked up for a solution and found it here:&lt;br /&gt;
http://answers.microsoft.com/en-us/windows/forum/windows_8-performance/microsoft-windows-search-filter-host-is-burning-my/bae4c974-5b47-4ab2-b17d-c599853f00f1?auth=1&lt;br /&gt;
It seems to be an older problem, prior to Windows 10.&lt;br /&gt;
To solve this I went to Control Panel and opened &quot;Indexing Options&quot;. On the top of the window, I could see that the index was being built. I then went to &quot;Advanced&quot; and under the &quot;Index Settings&quot; tab, in the &quot;Troubleshooting&quot; section, I chose &quot;Rebuild&quot;. This deletes the index and rebuilds it. Apparently there is &quot;an error with the index&quot; that causes the CPU consumption. As soon as I chose to rebuild, the CPU went down to reasonable values, below 5%.&lt;br /&gt;
These are the processes to look for in Task Manager:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG6X22KjC24E92QqWe0cnMeRmRgoS1vC1OmpL3jnfqS5zAfImWyE_M5J-fS5GhO8buQwmt1Eh13zX7wyLFkvN-jp0LzGG_m7up0e4J2VMUBzQTvzrHnfyLP-_5vOdoa28X_F2cB3qKxCLO/s1600/windows_protocol_host.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;32&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG6X22KjC24E92QqWe0cnMeRmRgoS1vC1OmpL3jnfqS5zAfImWyE_M5J-fS5GhO8buQwmt1Eh13zX7wyLFkvN-jp0LzGG_m7up0e4J2VMUBzQTvzrHnfyLP-_5vOdoa28X_F2cB3qKxCLO/s320/windows_protocol_host.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/19308564982908527/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2015/12/windows-serach-indexer-high-cpu.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/19308564982908527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/19308564982908527'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2015/12/windows-serach-indexer-high-cpu.html' title='Windows Search Indexer High CPU'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG6X22KjC24E92QqWe0cnMeRmRgoS1vC1OmpL3jnfqS5zAfImWyE_M5J-fS5GhO8buQwmt1Eh13zX7wyLFkvN-jp0LzGG_m7up0e4J2VMUBzQTvzrHnfyLP-_5vOdoa28X_F2cB3qKxCLO/s72-c/windows_protocol_host.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-4858755565460385292</id><published>2015-05-22T23:43:00.002-07:00</published><updated>2015-05-22T23:44:09.725-07:00</updated><title type='text'>Staying alive is a matter of chance</title><content type='html'>&lt;span style=&quot;background-color: white; font-size: 16px; font-variant: small-caps; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Knowing your chances is not always a good thing. (&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;font-variant: small-caps;&quot;&gt;https://xkcd.com/795/)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://imgs.xkcd.com/comics/conditional_risk.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://imgs.xkcd.com/comics/conditional_risk.png&quot; height=&quot;271&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; font-family: Lucida, Helvetica, sans-serif; font-size: 16px; font-variant: small-caps; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/4858755565460385292/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2015/05/probability-is-matter-of-chance.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/4858755565460385292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/4858755565460385292'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2015/05/probability-is-matter-of-chance.html' title='Staying alive is a matter of chance'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-5739834500715657075</id><published>2015-01-06T05:55:00.000-08:00</published><updated>2015-01-06T05:55:25.962-08:00</updated><title type='text'>Why Declare a Function Static in C?</title><content type='html'>This is a nice thing to be aware of.&lt;br /&gt;
Making functions static only makes them visible to the translation unit (.c file) that you declare them into and may even bring performance improvements when compiler optimization is enabled.&lt;br /&gt;
Full lenght discussion on Stack Overflow:&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/5319361/static-function-in-c&quot;&gt;http://stackoverflow.com/questions/5319361/static-function-in-c&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/5739834500715657075/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2015/01/why-declare-function-static-in-c.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/5739834500715657075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/5739834500715657075'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2015/01/why-declare-function-static-in-c.html' title='Why Declare a Function Static in C?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-7817997654866436574</id><published>2014-08-29T10:24:00.000-07:00</published><updated>2015-01-06T05:58:18.920-08:00</updated><title type='text'>Productivity in the Open</title><content type='html'>http://www.businessinsider.com/the-real-reason-for-the-40-hour-workweek-2014-6&lt;br /&gt;
&lt;br /&gt;
This is very accurate in my opinion. &lt;br /&gt;
&lt;br /&gt;
I recently ran into this post on The Economist and found it quite compelling in the sense that we need to rather &lt;i&gt;focus &lt;/i&gt;than waste a lot of time fidgeting or wondering about the office with no clear purpose at hand. Fewer working hours, more personal life, more creativity and improvement you can bring to the world.&lt;br /&gt;
&lt;a href=&quot;http://www.economist.com/blogs/freeexchange/2014/12/working-hours&quot;&gt;http://www.economist.com/blogs/freeexchange/2014/12/working-hours&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/7817997654866436574/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2014/08/httpwww.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/7817997654866436574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/7817997654866436574'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2014/08/httpwww.html' title='Productivity in the Open'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-7607991323679381352</id><published>2013-09-29T03:30:00.005-07:00</published><updated>2013-09-29T03:36:35.885-07:00</updated><title type='text'>Core C++ Series</title><content type='html'>I ran into the Stephan T. Lavavej&#39;s series on &lt;a href=&quot;http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Core-C-&quot;&gt;Core C++ on Channel 9&lt;/a&gt; and it brings about many interesting features of C++ that I did not have the opportunity to go through. I plan on following the whole series. Today I watched the first episode and found out a little bit more about C++ name lookup: &lt;br /&gt;
&lt;br /&gt;
&lt;video controls=&quot;&quot; height=&quot;540&quot; poster=&quot;http://media.ch9.ms/ch9/9621/e2f65287-7bd4-4e1a-91d9-405a746c9621/STLCCSeries1_512.jpg&quot; width=&quot;550&quot;&gt;&lt;source src=&quot;http://media.ch9.ms/ch9/9621/e2f65287-7bd4-4e1a-91d9-405a746c9621/STLCCSeries1_mid.mp4&quot; type=&quot;video/mp4&quot;&gt;&lt;/source&gt;&lt;source src=&quot;http://media.ch9.ms/ch9/9621/e2f65287-7bd4-4e1a-91d9-405a746c9621/STLCCSeries1.webm&quot; type=&quot;video/webm&quot;&gt;&lt;/source&gt;&lt;/video&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/7607991323679381352/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2013/09/core-c-series.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/7607991323679381352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/7607991323679381352'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2013/09/core-c-series.html' title='Core C++ Series'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-975677843042320588</id><published>2013-09-29T01:36:00.001-07:00</published><updated>2013-09-29T01:36:34.117-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="Spy++"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2005"/><title type='text'>Unable to Access the Properties Window in Visual Studio</title><content type='html'>I had my part of frustration when I fond I could not get hold of the Properties Window in Visual Studio 2005. No matter whether I tried bringing up the window by accessing the menu entry or using the key combination, I could not see the window even though the current view seemed to be switching focus to a new window.&lt;br /&gt;
This had to be something about settings, because when I was running a debugging session, the Properties window would be displayed. &lt;br /&gt;
I had two hypotheses, with the help of Spy++. I could see the window listed under Visual Studio 2005 in Spy++ so it had to be somewhere.&lt;br /&gt;
Inspecting the properties of the Visual Studio 2005 &#39;Properties&#39; window, I got:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV5xLuaRY4YPe-61Yzt_DA14hARMnpZtpv1Q9IiJ7h0OK2O1RRp3VisNpQJjC85DBwMmQEKiX3ifNdnXYaBIPkkoCpA0X0gd7Hx9qpntBwevwz8h4ONEOFGrUBZ3oA-whV7lQoZYGKfbiG/s1600/Invisble+properties+window.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;241&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV5xLuaRY4YPe-61Yzt_DA14hARMnpZtpv1Q9IiJ7h0OK2O1RRp3VisNpQJjC85DBwMmQEKiX3ifNdnXYaBIPkkoCpA0X0gd7Hx9qpntBwevwz8h4ONEOFGrUBZ3oA-whV7lQoZYGKfbiG/s320/Invisble+properties+window.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
So:&lt;br /&gt;
1. The window is either off screen and/or&lt;br /&gt;
2. The window is of zero width as shown in the rectangle properties.&lt;br /&gt;
&lt;br /&gt;
I tried locating registry settings to specify the location and/ or dimension of the Properties window, but without success. &lt;br /&gt;
My solution was to restore Visual Studio&#39;s settings for C# development environment (which I spend most of my time in) and this restored the views of all windows to default and now I can access the Properties window as before. ( see this &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms247075(v=vs.90).aspx&quot;&gt;Microsoft How To &lt;/a&gt;for details on how to restore your settings)&lt;br /&gt;
&lt;br /&gt;
The new Window Properties in Spy++ now look like this:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA7CYhnCUf2T4rzD8Ei7IQvOuE5IG2ldGVkc29pHEhl90Sa4kX0gJ2TJoupl2R2QD9R1el7kwZR_Ym3WwJkvkl4XrMO43gGP0EhjCR0ow4RqJzfPz5YYMSVmiU8nHZp1xW5pevfMJqkt6k/s1600/Visible+properties+window.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA7CYhnCUf2T4rzD8Ei7IQvOuE5IG2ldGVkc29pHEhl90Sa4kX0gJ2TJoupl2R2QD9R1el7kwZR_Ym3WwJkvkl4XrMO43gGP0EhjCR0ow4RqJzfPz5YYMSVmiU8nHZp1xW5pevfMJqkt6k/s320/Visible+properties+window.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After I wrote this post I found this &lt;a href=&quot;http://blogs.msdn.com/b/carloc/archive/2007/09/26/my-goodness-were-s-gone-my-properties-window.aspx&quot;&gt;blog entry&lt;/a&gt; suggesting a solution for the situation when the &#39;Properties&#39; window is off screen.&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/975677843042320588/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2013/09/unable-to-access-properties-window-in.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/975677843042320588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/975677843042320588'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2013/09/unable-to-access-properties-window-in.html' title='Unable to Access the Properties Window in Visual Studio'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV5xLuaRY4YPe-61Yzt_DA14hARMnpZtpv1Q9IiJ7h0OK2O1RRp3VisNpQJjC85DBwMmQEKiX3ifNdnXYaBIPkkoCpA0X0gd7Hx9qpntBwevwz8h4ONEOFGrUBZ3oA-whV7lQoZYGKfbiG/s72-c/Invisble+properties+window.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-5366487860300358031</id><published>2013-08-31T06:56:00.001-07:00</published><updated>2013-08-31T06:56:43.263-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Platform Builder"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows CE"/><title type='text'>How to Check for Windows CE Platform Builder Updates</title><content type='html'>In order to verify whether you have the latest version of Windows CE Platform Builder installed you can use the &lt;i&gt;CEUpdateCheck.exe&lt;/i&gt; tool which is typically found in:&lt;br /&gt;
&lt;i&gt;C:\Program Files\Microsoft Platform Builder\6.00\cepb\SustainedEngineering&lt;/i&gt;&lt;br /&gt;
Running this tool and selecting the &quot;Verify Updates&quot; button will list the updates that you have installed and the ones that you have not yet installed, categorized by year. This will allow you to locate and install the latest update pack much easier on the Microsoft website.&lt;br /&gt;
The latest release is R3, and after that there is a cumulative update and for 2013 there are monthly updates that need to be installed one at a time. </content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/5366487860300358031/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2013/08/how-to-check-for-windows-ce-platform.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/5366487860300358031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/5366487860300358031'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2013/08/how-to-check-for-windows-ce-platform.html' title='How to Check for Windows CE Platform Builder Updates'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-3674093896416280562</id><published>2013-08-14T00:13:00.000-07:00</published><updated>2013-08-14T00:13:31.272-07:00</updated><title type='text'>Passing structures to C++ using C#</title><content type='html'>An ever reoccurring problem for developers having to integrate legacy C++ libraries with .NET Framework projects is passing structures to the C++ layer and getting back the results.&lt;br /&gt;
I have searched the web and I have found a few threads looking into this problem as well as the official MSDN documentation. &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://stackoverflow.com/questions/3939867/passing-a-structure-to-c-api-using-marshal-structuretoptr-in-c-sharp&quot;&gt;http://stackoverflow.com/questions/3939867/passing-a-structure-to-c-api-using-marshal-structuretoptr-in-c-sharp&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://objectmix.com/dotnet/796796-ptrtostructure-failing-structure-must-not-value-class.html&quot;&gt;http://objectmix.com/dotnet/796796-ptrtostructure-failing-structure-must-not-value-class.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.structuretoptr.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.structuretoptr.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
For my own needs, I am using the following code snippet, that is used to pass a structure by reference to a C++ function and get back the structure filled with the data.&lt;br /&gt;
&lt;br /&gt;
In the code below, the StructureToPass structure must match the definition of the equivalent C++ structure and must be decorated with the StructLayout(LayoutKind.Sequential) attribute.&lt;br /&gt;
&lt;br /&gt;
[StructLayout(LayoutKind.Sequential)]&lt;br /&gt;
public struct StructureToPass &amp;nbsp;&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public uint x;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public float y;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; public float z;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;StructureToPass&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; tsData = &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;StructureToPass&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;
&lt;/span&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;IntPtr&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; strPtr = &lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;Marshal&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;.AllocHGlobal(&lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;Marshal&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;.SizeOf(tsData));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;

&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;try&lt;/span&gt;&lt;br /&gt;
   {&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Marshal&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;.StructureToPtr(tsData, strPtr, &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;false&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;

&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&amp;nbsp; if&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; ( 0 == GetStructureFromCPP(strPtr))&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;

&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;      tsData = (&lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;StructureToPass&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;Marshal&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;.PtrToStructure(strPtr, &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;typeof&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;StructureToPass&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;

&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;}&lt;br /&gt;
   }&lt;br /&gt;

&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;catch&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;Exception&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; ex)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;

   {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;
   }&lt;br /&gt;

&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;finally&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;color: blue; font-size: x-small;&quot;&gt;&lt;/span&gt;
   {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;

&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;&lt;span style=&quot;color: #2b91af; font-size: x-small;&quot;&gt;Marshal&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;.FreeHGlobal(strPtr);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;
   }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&amp;nbsp;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/3674093896416280562/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2013/08/passing-structures-to-c-using-c.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/3674093896416280562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/3674093896416280562'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2013/08/passing-structures-to-c-using-c.html' title='Passing structures to C++ using C#'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-440310092980679568</id><published>2013-08-14T00:12:00.001-07:00</published><updated>2013-08-14T00:12:35.025-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="C1001"/><category scheme="http://www.blogger.com/atom/ns#" term="compiler"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2005"/><title type='text'>Visual Studio 2005 C1001 compiler error</title><content type='html'>While compiling a C++/CLI project from within Visual Studio 2005 I received error C1001 - internal compiler error, file msc1.cpp line 1393. The reported error seemed to originate in a header file containing&amp;nbsp;the class definition. &lt;br /&gt;
Cleaning and rebuilding the project helped me solve the issue. &lt;br /&gt;
&lt;br /&gt;
More on internal compiler errors can be found here:&lt;br /&gt;
&lt;a href=&quot;http://support.microsoft.com/kb/305980&quot;&gt;http://support.microsoft.com/kb/305980&lt;/a&gt;&lt;br /&gt;
though it was not the case for my particular situation. &lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/440310092980679568/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2013/08/visual-studio-2005-c1001-compiler-error.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/440310092980679568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/440310092980679568'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2013/08/visual-studio-2005-c1001-compiler-error.html' title='Visual Studio 2005 C1001 compiler error'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-1734512453862260185</id><published>2012-09-11T06:45:00.001-07:00</published><updated>2012-09-11T06:50:01.223-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><title type='text'>Fast Facts - BinaryReader</title><content type='html'>&lt;p&gt;This post is about the BinaryReader class and the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.io.binaryreader.readbytes.aspx&quot;&gt;ReadBytes &lt;/a&gt;method return value. &lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
public virtual byte[] ReadBytes( int count )&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;This method returns an array of &lt;i&gt;count&lt;/i&gt; bytes or the number of bytes left to the end of the underlying stream, whichever is less. &lt;br /&gt;
When there are no more bytes to read, calling &lt;i&gt;ReadBytes&lt;/i&gt; return an empty array of bytes, not a null value. This is useful to know when verifying the outcome of a read operation. &lt;br /&gt;
To prove this, there is a quick C# method that you can load in &lt;a href=&quot;http://www.linqpad.net/&quot;&gt;LINQPad&lt;/a&gt;:&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;
&lt;pre class=&quot;csharpcode&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;void&lt;/span&gt; Main()
{
    &lt;span class=&quot;kwrd&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;int&lt;/span&gt; arrayLength = 20;

    &lt;span class=&quot;rem&quot;&gt;// Create random data to write to the stream. &lt;/span&gt;
    &lt;span class=&quot;kwrd&quot;&gt;byte&lt;/span&gt;[] dataArray = &lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;byte&lt;/span&gt;[arrayLength];
    &lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; Random().NextBytes(dataArray);

    BinaryWriter binWriter = &lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; BinaryWriter(&lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; MemoryStream());

    &lt;span class=&quot;rem&quot;&gt;// Write the data to the stream.&lt;/span&gt;
    Console.WriteLine(&lt;span class=&quot;str&quot;&gt;&quot;Writing the data.&quot;&lt;/span&gt;);
    binWriter.Write(dataArray);

    &lt;span class=&quot;rem&quot;&gt;// Create the reader using the stream from the writer.&lt;/span&gt;
    BinaryReader binReader = 
        &lt;span class=&quot;kwrd&quot;&gt;new&lt;/span&gt; BinaryReader(binWriter.BaseStream);

    &lt;span class=&quot;rem&quot;&gt;// Set Position to the beginning of the stream.&lt;/span&gt;
    binReader.BaseStream.Position = 0;

    &lt;span class=&quot;rem&quot;&gt;// Read and verify the data. &lt;/span&gt;
    &lt;span class=&quot;kwrd&quot;&gt;byte&lt;/span&gt;[] verifyArray = &lt;span class=&quot;kwrd&quot;&gt;null&lt;/span&gt;;
    &lt;span class=&quot;kwrd&quot;&gt;for&lt;/span&gt;( &lt;span class=&quot;kwrd&quot;&gt;int&lt;/span&gt; i = 0; i &amp;lt; 6; i++ )
    {
        &lt;span class=&quot;rem&quot;&gt;// ReadBytes returns an empty array when there are no more bytes to read.&lt;/span&gt;
        verifyArray = binReader.ReadBytes(&lt;span class=&quot;kwrd&quot;&gt;sizeof&lt;/span&gt;(&lt;span class=&quot;kwrd&quot;&gt;uint&lt;/span&gt;));
        Console.WriteLine( (verifyArray!=&lt;span class=&quot;kwrd&quot;&gt;null&lt;/span&gt;) ? &lt;span class=&quot;str&quot;&gt;&quot;Length = &quot;&lt;/span&gt; + verifyArray.Length : &lt;span class=&quot;str&quot;&gt;&quot;Array is null&quot;&lt;/span&gt; );
        verifyArray = &lt;span class=&quot;kwrd&quot;&gt;null&lt;/span&gt;;
    }    
}
&lt;/pre&gt;&lt;br /&gt;
&lt;p&gt;Running this program will display:&lt;br /&gt;
&lt;br /&gt;
Writing the data.&lt;br /&gt;
Length = 4&lt;br /&gt;
Length = 4&lt;br /&gt;
Length = 4&lt;br /&gt;
Length = 4&lt;br /&gt;
Length = 4&lt;br /&gt;
Length = 0&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/1734512453862260185/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2012/09/fast-facts-binaryreader.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/1734512453862260185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/1734512453862260185'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2012/09/fast-facts-binaryreader.html' title='Fast Facts - BinaryReader'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-3442704133762254942</id><published>2012-08-31T02:15:00.001-07:00</published><updated>2012-08-31T02:20:04.208-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Interop"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows"/><title type='text'>DllImport default path</title><content type='html'>&lt;p&gt;When using DllImport for interop in C#, the default path of the library that you want to import is dictated by the operating system. 
The search order used by Windows OS depends on whether SafeDllSearchMode is enabled or disabled. When the safe mode is enabled, the current directory is placed lower in the search order. See &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx&lt;/a&gt; for complete information on Dinamyc-Link Library Search Order.&lt;/p&gt;

&lt;p&gt;Beside the implicit search order described below, one can use the .dll full path with the DllImport attribute. &lt;/p&gt;

&lt;p&gt;The search order when safe mode is enabled is:
&lt;br /&gt;
&lt;br&gt;1.The directory from which the application loaded.&lt;/br&gt;
&lt;br&gt;2.The system directory. Use the GetSystemDirectory function to get the path of this directory.&lt;/br&gt;
&lt;br&gt;3. The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.&lt;/br&gt;
&lt;br&gt;4.The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.&lt;/br&gt;
&lt;br&gt;5.The current directory. &lt;/br&gt;
&lt;br&gt;6.The directories that are listed in the PATH environment variable. Note that this does not include the per-application path specified by the App Paths registry key. The App Paths key is not used when computing the DLL search path.&lt;/br&gt;
&lt;/p&gt;
&lt;p&gt;

And when the safe mode is disabled:
&lt;br /&gt;
&lt;br&gt;1.The directory from which the application loaded.&lt;/br&gt;
&lt;br&gt;2.The current directory. &lt;/br&gt;
&lt;br&gt;3.The system directory. Use the GetSystemDirectory function to get the path of this directory.&lt;/br&gt;
&lt;br&gt;4. The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.&lt;/br&gt;
&lt;br&gt;5.The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.&lt;/br&gt;
&lt;br&gt;6.The directories that are listed in the PATH environment variable. Note that this does not include the per-application path specified by the App Paths registry key. The App Paths key is not used when computing the DLL search path.&lt;/br&gt;
&lt;/p&gt;
&lt;p&gt;
I have successfully used the directory from which the application is loaded, but it will be interesting to give a try to the other modes. Probably the most efficient is the use the first option most of the time for better performance, just because it&#39;s the first place the OS looks for the .dll. 
Knowing where the OS will look for the .dll is essential and a point to remember. 
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/3442704133762254942/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2012/08/dllimport-default-path.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/3442704133762254942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/3442704133762254942'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2012/08/dllimport-default-path.html' title='DllImport default path'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-1377821237447861183</id><published>2012-02-19T10:03:00.000-08:00</published><updated>2012-02-19T10:04:37.678-08:00</updated><title type='text'>TIOBE index</title><content type='html'>&lt;p&gt;TIOBE Software measures programming languages indexes with respect to their popularity among developers. The latest rankings are available &lt;a href=&quot;http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html&quot;&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;This month Java is the leader and has been maintaining its position since February last year, closely followed by C, which also maintains its position. The next three positions are held by C#, C++ and  Objective-C. This is an interesting ranking and specially, it is good to know where the demand is going when starting to learn a new programming language. 
Compared to last year, C#, which I favor over Java simply because I spend most of my time developing for the Windows platform, jumped three positions and it now holds 3rd place, even though at significant distance from positions 1 and 2 (about 8 percent). I do not expect C# to be #1 any time soon, specially since it is not (natively) portable to Unix-like systems, and of course C is a natural leader, even though complex, no serious developer should lack knowledge of C. &lt;/p&gt;
&lt;p&gt;
Regarding the leader, Java, I remember I liked it a low while in college and after that and I still develop some pieces of code using it and I think it is all right, but when it comes to Windows desktop programming and developing software that has a user interface, I don&#39;t see it as a rival for C# right now. 
Well, this is a kind of debate that would not end if put on a forum or discussion group and of course, everyone would be right, since the best programming language is the one that you have used the most and feel most confortable using, no doubt about it. Enjoy coding!
&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/1377821237447861183/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2012/02/tiobe-index.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/1377821237447861183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/1377821237447861183'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2012/02/tiobe-index.html' title='TIOBE index'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-6986416659502656822</id><published>2012-02-14T02:45:00.000-08:00</published><updated>2012-02-14T02:46:15.745-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Registry"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Explorer"/><title type='text'>Add Command Prompt Shortcut to Windows Explorer Context Menu</title><content type='html'>I always seem to be needing a command prompt and right clicking on a directory and opening a command prompt with the path already set to that directory is very handy.
The contents of this post may also be found on various sites on the internet and I am only writing it here specially for me to remember it in the future, 
when I reinstall Windows :).
I have found this post which goes through a seemingly exhaustive process of describing all methods to add the shortcut to the command prompt in the context menu: 
&lt;a href=&quot;http://www.petri.co.il/add_command_prompt_here_shortcut_to_windows_explorer.htm&quot;&gt;http://www.petri.co.il/add_command_prompt_here_shortcut_to_windows_explorer.htm&lt;/a&gt;.
I personally prefer manually creating a key in the Windows registry, under [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell].

To make it easier, I have exported the keys and all you need to do is create a new file, say with Notepad and assign it a .reg extension (not .reg.txt ) 
and copy the following lines in the new file and double-click it. 

&lt;blockquote&gt;Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Command Prompt]
@=&quot;Command Prompt&quot;

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\Command Prompt\command]
@=&quot;cmd.exe /k pushd %1&quot;
&lt;/blockquote&gt;

Otherwise, open the registry editor and browse to [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell].
Expand this key and create a new key named &lt;i&gt;Command Prompt&lt;/i&gt;. 
Under the newly created &lt;i&gt;Command Prompt&lt;/i&gt; create a new key and name it &lt;i&gt;command&lt;/i&gt;.
Double click the &lt;i&gt;Default&lt;/i&gt; entry under &lt;i&gt;command&lt;/i&gt; and assign it the value:
&lt;blockquote&gt;cmd.exe /k pushd %1&lt;/blockquote&gt;

And that will do the trick.
Hopefully, next time I&#39;ll remember...</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/6986416659502656822/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2012/02/add-command-prompt-shortcut-to-windows.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/6986416659502656822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/6986416659502656822'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2012/02/add-command-prompt-shortcut-to-windows.html' title='Add Command Prompt Shortcut to Windows Explorer Context Menu'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-685495627837963368</id><published>2012-01-19T07:48:00.000-08:00</published><updated>2012-01-19T07:53:54.673-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2005"/><title type='text'>Could not load file or assembly or one of its dependencies.</title><content type='html'>&lt;p&gt;The full error text is in fact: &lt;blockquote&gt;&lt;i&gt;Could not load file or assembly &#39;xxx.dll&#39; or one of its dependencies. 
An attempt was made to load a program with an incorrect format&lt;/i&gt;&lt;/blockquote&gt; and may occur when using Visual Studio 2005 on 64-bit platforms.
A common cause of this error is when using third party tools that require the license compiler (lc.exe). On 64 bit systems, the license compiler will run as a 64-bit application by default and if the third party libraries are not compatible with 64-bit platforms, the aforementioned error is generated. 
One solution to fix this, even though in this case you will be limited to compiling your whole application in x86 mode, is to add the following code in the pre-build and post-build event sections of the project&#39;s &lt;b&gt;Build Events&lt;/b&gt; section. The statements must be on a single line.
&lt;/p&gt;
&lt;p&gt;Pre-Build:&lt;/p&gt;
&lt;blockquote&gt;
if exist %WINDIR%\Microsoft.NET\Framework64\v2.0.50727\ %WINDIR%\Microsoft.NET\Framework64\v2.0.50727\ldr64.exe setwow
&lt;/blockquote&gt;

Post-Build:
&lt;blockquote&gt;
if exist %WINDIR%\Microsoft.NET\Framework64\v2.0.50727\ %WINDIR%\Microsoft.NET\Framework64\v2.0.50727\ldr64.exe set64
&lt;/blockquote&gt;

For more information on the license compiler, see this post on MSDN: 
&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ha0k3c9f.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/ha0k3c9f.aspx&lt;/a&gt;.

I must say I have tried other solutions, as explained in other blogs 
or forums on-line, which advise to change the target platform to x86 or Any CPU, 
but those did not work for me.</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/685495627837963368/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2012/01/could-not-load-file-or-assembly-or-one.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/685495627837963368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/685495627837963368'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2012/01/could-not-load-file-or-assembly-or-one.html' title='Could not load file or assembly or one of its dependencies.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-3893379902160461432</id><published>2012-01-03T00:56:00.000-08:00</published><updated>2012-01-03T00:56:41.577-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2005"/><title type='text'>Show Control in Visual Studio 2005 Toolbox</title><content type='html'>After creating a custom control with Visual Studio 2005 you may want to have it available in the Toolbox to easily drag and drop it on your own forms. There is an option in Visual Studio 2005 that enables or disables the adding the of the custom control in the Toolbox. To make sure that your control will show up in the Toolbox, verify that under Tools-&gt;Options-&gt;Windows Forms Designer, the AutoToolboxPopulate option is set to true.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjcXsVfB56yJmop95wGjQTyECZyAaOVd-7clDhU-BtBhls009C_fxGfjzccXWHoGo3jswBNAAfBCtt96H5TAgdmxexxNgaxokyhHM1hgEhMVWkVO2NJS7KTwiFIluoo0YS0c9ade57WyIy/s1600/VSOptions.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left:1em; margin-right:1em&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;187&quot; width=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjcXsVfB56yJmop95wGjQTyECZyAaOVd-7clDhU-BtBhls009C_fxGfjzccXWHoGo3jswBNAAfBCtt96H5TAgdmxexxNgaxokyhHM1hgEhMVWkVO2NJS7KTwiFIluoo0YS0c9ade57WyIy/s320/VSOptions.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/3893379902160461432/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2012/01/show-control-in-visual-studio-2005.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/3893379902160461432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/3893379902160461432'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2012/01/show-control-in-visual-studio-2005.html' title='Show Control in Visual Studio 2005 Toolbox'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjcXsVfB56yJmop95wGjQTyECZyAaOVd-7clDhU-BtBhls009C_fxGfjzccXWHoGo3jswBNAAfBCtt96H5TAgdmxexxNgaxokyhHM1hgEhMVWkVO2NJS7KTwiFIluoo0YS0c9ade57WyIy/s72-c/VSOptions.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-7159321181770839895</id><published>2012-01-02T11:41:00.000-08:00</published><updated>2012-01-02T11:41:01.176-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2005"/><title type='text'>The path is not of a legal form.</title><content type='html'>In Visual Studio 2005 I got this error when trying to open a form in design mode. This was not a programming error because I was able to properly compile and run my code. After looking at the projects in my solution (luckily, just two simple projects) I have found that one of the projects had a dead reference - a reference with an exclamation mark. I removed that reference and I am now again able to open my form in design mode. I believe a better formulation of the error message would be very helpful in this case. &lt;br /&gt;
I post the error stack below, for reference:&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;The path is not of a legal form. &lt;br /&gt;
at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)&lt;br /&gt;
at System.IO.Path.NormalizePath(String path, Boolean fullCheck)&lt;br /&gt;
at System.IO.Path.GetFullPathInternal(String path)&lt;br /&gt;
at System.Reflection.AssemblyName.GetAssemblyName(String assemblyFile)&lt;br /&gt;
Microsoft.VisualStudio.Design.VSTypeResolutionService.AddProjectDependencies(Project project)&lt;br /&gt;
Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly()&lt;br /&gt;
Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly&amp; assembly, String description) at &lt;br /&gt;
Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchProjectEntries(AssemblyName assemblyName, String typeName, Boolean ignoreTypeCase, Assembly&amp; assembly) at &lt;br /&gt;
Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchEntries(AssemblyName assemblyName, String typeName, Boolean ignoreCase, Assembly&amp; assembly, ReferenceType refType) at &lt;br /&gt;
Microsoft.VisualStudio.Design.VSTypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, ReferenceType refType) at &lt;br /&gt;
Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name, Boolean throwOnError, Boolean ignoreCase) at &lt;br /&gt;
Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name, Boolean throwOnError) at &lt;br /&gt;
System.ComponentModel.Design.Serialization.CodeDomSerializerBase.GetType(ITypeResolutionService trs, String name, Dictionary`2 names) at &lt;br /&gt;
System.ComponentModel.Design.Serialization.CodeDomSerializerBase.FillStatementTable(IDesignerSerializationManager manager, IDictionary table, Dictionary`2 names, CodeStatementCollection statements, String className) at &lt;br /&gt;
System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration) at &lt;br /&gt;
System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager) at &lt;br /&gt;
Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager) at &lt;br /&gt;
Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/7159321181770839895/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2012/01/path-is-not-of-legal-form.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/7159321181770839895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/7159321181770839895'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2012/01/path-is-not-of-legal-form.html' title='The path is not of a legal form.'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-5409021102215648996</id><published>2011-12-13T02:35:00.000-08:00</published><updated>2011-12-13T02:35:15.933-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Visual Studio 2005"/><title type='text'>The refactoring could not be performed due to build errors</title><content type='html'>There is a quirk in Visual Studio 2005 which prevents refactoring when a warning CS1699 is issued. More specifically, ine of the projects in my solution was issuing warning CS1699 : &lt;blockquote&gt;Use command line option &#39;/keyfile&#39; or appropriate project settings instead of &#39;AssemblyKeyFile&#39;&lt;/blockquote&gt;and it was not until I solved this error by commenting the AssemblyKeyFile line in the AssemblyInfo.cs file that the refactoring ( encapsulating a field ) started to work once again. You can see more details about this warning here:&lt;br /&gt;
http://msdn.microsoft.com/en-us/library/xh3fc3x0(v=VS.80).aspx. &lt;br /&gt;
The error is confusing since it says that one of the projects in the solution does not currently build, which is false since this is solely a warning.</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/5409021102215648996/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2011/12/refactoring-could-not-be-performed-due.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/5409021102215648996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/5409021102215648996'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2011/12/refactoring-could-not-be-performed-due.html' title='The refactoring could not be performed due to build errors'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-90083615520642812</id><published>2011-11-06T06:34:00.001-08:00</published><updated>2011-11-06T06:39:40.488-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Misc"/><title type='text'>Can you see with your tongue?</title><content type='html'>&lt;a href=&quot;http://discovermagazine.com/2003/jun/feattongue&quot;&gt;Can You See With Your Tongue?&lt;/a&gt; &lt;br /&gt;
Seeing with your tongue may indeed happen to a certain level because of a property of the brain called &quot;plasticity&quot; which is in fact the ability of a brain region to interpret sensors from different sources and adapting itself to them such that for instance it is possible to &quot;see&quot; using our auditory cortex. &lt;br /&gt;
This plasticity of the brain may allow humans to enhance their senses in a way that may be a little scary to imagine right now and would be more or less associated to science-fiction. However, this is a road in defining what and who we are and understanding how the sensory, cognitive and emotional interleave.&lt;br /&gt;
The more answers we have, the more of this behavior we can replicate in machines. This is a long and open matter of discussion, which I think will represent the challenge of this century. Having thinking machines will mean a great shift in how we see society in the present days and it&#39;s hard to grasp at this point.&lt;br /&gt;
Meanwhile, noteworthy discoveries in how the brain works are the foundation bricks to an uncertain building. &lt;br /&gt;
So, can you see with your tongue?</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/90083615520642812/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2011/11/can-you-see-with-your-tongue.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/90083615520642812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/90083615520642812'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2011/11/can-you-see-with-your-tongue.html' title='Can you see with your tongue?'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-8182888257197316981</id><published>2011-09-17T12:00:00.000-07:00</published><updated>2012-03-31T01:10:23.979-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Localization"/><category scheme="http://www.blogger.com/atom/ns#" term="res2res"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows CE"/><title type='text'>Res2Res Error Adding Resources</title><content type='html'>Upon compiling a new OS design for the Device Emulator, the following error may occur during Sysgen:&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;
&lt;i&gt;ERROR: Res2Res: Res2Res:&amp;nbsp; ERROR: Line: 267&amp;nbsp; File: c:\ce1\tools\ostools\wincetools\rescommon\checksum.cpp&lt;br /&gt;
ERROR: Res2Res: Res2Res:&amp;nbsp; ERROR: Line: 267&amp;nbsp; File: c:\ce1\tools\ostools\wincetools\rescommon\checksum.cpp&lt;br /&gt;
Res2Res: Error adding resources (-1)&lt;br /&gt;
NMAKE : fatal error U1077: &#39;res2res&#39; : return code &#39;0xffffffff&#39;&lt;br /&gt;
Stop.&lt;br /&gt;
NMAKE : fatal error U1077: &#39;C:\WINCE600\sdk\bin\i386\nmake.exe&#39; : return code &#39;0x2&#39;&lt;br /&gt;
Stop.&lt;/i&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt; -------------------------------------------&lt;/p&gt;
&lt;p&gt;&lt;i&gt;The same issue may provide the following error code:
Res2Res: Error adding resources (110)
NMAKE : fatal error U1077: &#39;res2res&#39; : return code &#39;0x6e&#39;
Stop.
NMAKE : fatal error U1077: &#39;C:\WINCE600\sdk\bin\i386\nmake.exe&#39; : return code &#39;0x2&#39;
Stop.
&lt;/i&gt;&lt;/p&gt;

To solve the res2res related error, I have opened the project property pages and chose not to localize the build. I have also cleared all locales and only selected the English(United States) locale.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_m6cY-u8wTKRW4lqN_3R6nbFKyF4SZYcJx1kFOpPsnv0JHf3zHQaR2UKzI_Ncj4hNof1yMxk3K-bZGIR6KR2PylgYv_S2rPh4XfM0pFhPr2e5gmeiHx5_lLVWJ0WxiLXsY-3rqTLLBCzc/s1600/Locale.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_m6cY-u8wTKRW4lqN_3R6nbFKyF4SZYcJx1kFOpPsnv0JHf3zHQaR2UKzI_Ncj4hNof1yMxk3K-bZGIR6KR2PylgYv_S2rPh4XfM0pFhPr2e5gmeiHx5_lLVWJ0WxiLXsY-3rqTLLBCzc/s320/Locale.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/8182888257197316981/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/res2res-error-adding-resources.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/8182888257197316981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/8182888257197316981'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/res2res-error-adding-resources.html' title='Res2Res Error Adding Resources'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_m6cY-u8wTKRW4lqN_3R6nbFKyF4SZYcJx1kFOpPsnv0JHf3zHQaR2UKzI_Ncj4hNof1yMxk3K-bZGIR6KR2PylgYv_S2rPh4XfM0pFhPr2e5gmeiHx5_lLVWJ0WxiLXsY-3rqTLLBCzc/s72-c/Locale.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-1355660181145673150</id><published>2011-09-17T05:25:00.000-07:00</published><updated>2011-09-17T05:25:11.208-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ATL"/><category scheme="http://www.blogger.com/atom/ns#" term="Device Emulator"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows CE"/><title type='text'>atls.lib Error when Building Device Emulator OS</title><content type='html'>When building a Device Emulator OS design project, it is common to receive an error in the build process that refers to atls.lib. Visual Studio simply writes BLDEMO: There was an error in the build process. The true cause of the error is found in the build.log file, typically located in C:\WINCE600.&lt;br /&gt;
At the end of the build.log file, the following lines point to the error cause:&lt;br /&gt;
NMAKE : fatal error U1073: don&#39;t know how to make &#39;C:\WINCE600\OSDesigns\OSDesign1\OSDesign1\Wince600\DeviceEmulator_ARMV4I\cesysgen\oak\lib\ARMV4I\retail\atls.lib&#39;&lt;br /&gt;
Stop.&lt;br /&gt;
NMAKE : fatal error U1077: &#39;C:\WINCE600\sdk\bin\i386\nmake.exe&#39; : return code &#39;0x2&#39;&lt;br /&gt;
Stop.&lt;br /&gt;
To solve the build error, the Active Template Library needs to be included in OS using the&amp;nbsp; Catalog view. Just type ATL in the Catalog view search bar and check the &quot;Active Template Library(ATL)&quot; entry.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCu1qAXc-zkTaGSUHT5Q9NpJlYK2A6GzdXek2LPTjmzRPZ328JHiPstJZDaPPh5tYXjS0FKJd9xKcjWN3PO1UOEqsXqzeaHeoKx2IquaporlEal4G9GoFHEW-g11dQy1S0dm64BywgyCoa/s1600/ATL_Select.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCu1qAXc-zkTaGSUHT5Q9NpJlYK2A6GzdXek2LPTjmzRPZ328JHiPstJZDaPPh5tYXjS0FKJd9xKcjWN3PO1UOEqsXqzeaHeoKx2IquaporlEal4G9GoFHEW-g11dQy1S0dm64BywgyCoa/s1600/ATL_Select.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;After adding the reference to ATL, run the Sysgen build command to generate the OS image.</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/1355660181145673150/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/atlslib-error-when-building-device.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/1355660181145673150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/1355660181145673150'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/atlslib-error-when-building-device.html' title='atls.lib Error when Building Device Emulator OS'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCu1qAXc-zkTaGSUHT5Q9NpJlYK2A6GzdXek2LPTjmzRPZ328JHiPstJZDaPPh5tYXjS0FKJd9xKcjWN3PO1UOEqsXqzeaHeoKx2IquaporlEal4G9GoFHEW-g11dQy1S0dm64BywgyCoa/s72-c/ATL_Select.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-1007409031310273478</id><published>2011-09-15T07:44:00.000-07:00</published><updated>2011-09-17T05:25:50.661-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Windows CE"/><title type='text'>Debug Windows CE Applications Via TCP/IP</title><content type='html'>It is sometimes required to debug application on Windows CE devices without an ActiveSync connection, but over TCP/IP. In order to enable debugging using Visual Studio 2005, a few setup steps are required.&lt;br /&gt;
1. Create a OS image or copy the files listed below in the \Windows folder. It is more convenient to create a OS image in the case that Windows CE is loaded in RAM and the copied files would be deleted upon a subsequent restart. These files can be typically found in C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\&amp;lt;Target CPU&amp;gt;, where target CPU can be for instance armv4i. There you will need to find these files:&lt;br /&gt;
- clientshutdown.exe&lt;br /&gt;
-CMAccept.exe&lt;br /&gt;
- ConmanClient2.exe&lt;br /&gt;
- eDbgTL.dll&lt;br /&gt;
- TcpConnectionA.dll&lt;br /&gt;
&lt;br /&gt;
2. In Visual Studio, navigate to Tools|Options|Device Tools|Devices. Select the &quot;Windows CE 5.0 Device&quot; from the list of devices and click Properties.&lt;br /&gt;
3. In the Properties window, select TCP Connect Transport under Transport and then click Configure.&lt;br /&gt;
4. Under Configure TCP/IP Transport, select the IP address of the device. In my case this is 192.168.55.100. Click OK to close this window and the other windows and return to Visual Studio.&lt;br /&gt;
5. On the device side, open the command prompt, change the directory to \Windows were you have already copied the files specified on step 1 and execute ConmanClient2.exe. After that, execute CMAccept.exe. Alternatively, you can open the Windows folder using Explorer and double click on these files in the specified order.&lt;br /&gt;
6. Within three minutes of performing these steps, connect to the device using Visual Studio - that is, start debugging your application against the Windows CE environment. &lt;br /&gt;
&lt;br /&gt;
That&#39;s it, you are ready to go!</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/1007409031310273478/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/debug-windows-ce-applications-via-tcpip.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/1007409031310273478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/1007409031310273478'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/debug-windows-ce-applications-via-tcpip.html' title='Debug Windows CE Applications Via TCP/IP'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-934575389303874321</id><published>2011-09-07T01:37:00.000-07:00</published><updated>2011-09-07T01:42:40.979-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="RNDIS"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows CE"/><title type='text'>Activate and Configure RNDIS for Windows CE Based Devices</title><content type='html'>To activate RNDIS and communicate over TCP/IP with the Windows CE based device from Windows 7, I had to follow these steps:&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;1.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;Modify the key [&lt;strong&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9.5pt;&quot;&gt;HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\DefaultClientDriver] &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black; font-weight: normal; mso-bidi-font-weight: bold;&quot;&gt;to &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;RNDIS.&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;2.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black; font-weight: normal; mso-bidi-font-weight: bold;&quot;&gt;Save the registry modifications and restart the module. &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;3.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black; font-weight: normal; mso-bidi-font-weight: bold;&quot;&gt;In Windows, ActiveSync will no longer work and a generic RNDIS device will be listed in Device Manager,under Unknown Devices. &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;4.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black; font-weight: normal; mso-bidi-font-weight: bold;&quot;&gt;Right click the generic device and select to install a driver.&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;5.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black; font-weight: normal; mso-bidi-font-weight: bold;&quot;&gt;In the next window, select “Browse my computer for driver software”:&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-US;&quot;&gt;&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;v:stroke joinstyle=&quot;miter&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;v:formulas&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&amp;nbsp;&amp;nbsp;&lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt; &lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpuyURwSxI3qmKGnIVoAppgA2_SpeqqLT09OoRH-_9wzXWqhKrb3TYI4Hux6ri41Fi4nJjL9DqeG2qKy6_ruVJgm9ORIN5o_mChAPB1IFEHPS_Tt-XqNHLfcy-TtKuKx9vAS4pjoi0VNyE/s1600/Update+Driver+Software.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpuyURwSxI3qmKGnIVoAppgA2_SpeqqLT09OoRH-_9wzXWqhKrb3TYI4Hux6ri41Fi4nJjL9DqeG2qKy6_ruVJgm9ORIN5o_mChAPB1IFEHPS_Tt-XqNHLfcy-TtKuKx9vAS4pjoi0VNyE/s320/Update+Driver+Software.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;6.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;In the next window, select “Let me pick from a list of device drivers on my computer”:&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6y-dYUz3MCUGNyqmkvZoFPFPe-06WGC4QFnn3E6OdhXoCqe_x8f49iXUn0NhsbXW3xJSeAg5SZ-NO2UgUPkLejKQeaV7m78tM06vK1GCz6OL6zxfCxIPgs1yETsqiOtqErL-xnOQMREmP/s1600/Update+Driver+Software+2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6y-dYUz3MCUGNyqmkvZoFPFPe-06WGC4QFnn3E6OdhXoCqe_x8f49iXUn0NhsbXW3xJSeAg5SZ-NO2UgUPkLejKQeaV7m78tM06vK1GCz6OL6zxfCxIPgs1yETsqiOtqErL-xnOQMREmP/s320/Update+Driver+Software+2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;7.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;In the next window, select &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Network Adapters &lt;/b&gt;from the &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Common Hardware Types&lt;/b&gt; list and click &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Next.&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;8.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;In the &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Select Network Adapter&lt;/b&gt; window, select &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Microsoft Corporation&lt;/b&gt; and from the list on the right, &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Remote NDIS Compliant Device. &lt;/b&gt;Click &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Next&lt;/b&gt;.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFQWOHDtOimym2HFRY9niIDX5tQI2bHzVPXnl0Xs2LB33iJRmkE-xZ3p3im9zUzTe7JgWBp_c-WhYlLa4kKlv14RFQS9mgi3X-rqbAWf3AKjuuKEp_yRpjHeefNTWa01QbS_vlr_ZjYPJr/s1600/Remote+RNDIS+Device.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;225&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFQWOHDtOimym2HFRY9niIDX5tQI2bHzVPXnl0Xs2LB33iJRmkE-xZ3p3im9zUzTe7JgWBp_c-WhYlLa4kKlv14RFQS9mgi3X-rqbAWf3AKjuuKEp_yRpjHeefNTWa01QbS_vlr_ZjYPJr/s320/Remote+RNDIS+Device.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;9.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;You will get a warning message; you need to ignore it and install the new driver. After installation the RNDIS device will be listed under &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Network Adapters&lt;/b&gt; in &lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;Device Manager&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;10.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;On the PC side, in Network Connections, right click on the new adapter and assign it a new IP address, typically: 192.168.55.101 with mask 255.255.255.0. Leave the other fields blank.&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;11.&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;In Windows CE, open Settings-&amp;gt;Network and Dial-Up Connections and double click on the RNDIS adapter. Assign a new IP address, typically 192.168.55.100 with mask 255.255.255.0. Leave the other fields blank.&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt 0.75in; mso-list: l0 level1 lfo1; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;&lt;span style=&quot;font-size-adjust: none; font-stretch: normal; font: 7pt/normal &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;12.&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Now test communication between the PC and the Windows CE device by pinging the device’s address. &lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt;&quot;&gt;&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Important Note: &lt;/b&gt;In this setup, Active Sync will no longer work. It can only be restored by modyfing the [&lt;strong&gt;&lt;span style=&quot;color: black; font-family: &amp;quot;Segoe UI&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 9.5pt;&quot;&gt;HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\DefaultClientDriver] &lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;color: black; font-weight: normal; mso-bidi-font-weight: bold;&quot;&gt;back to its original value (Serial_Class).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin: 0in 0in 0pt; text-align: center;&quot;&gt;&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;  &lt;v:stroke joinstyle=&quot;miter&quot;&gt;  &lt;v:formulas&gt;   &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;   &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;   &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;   &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;   &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;   &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;   &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;   &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;   &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;   &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;   &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;   &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;  &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;  &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;  &lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/934575389303874321/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/activate-and-configure-rndis-for.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/934575389303874321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/934575389303874321'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/activate-and-configure-rndis-for.html' title='Activate and Configure RNDIS for Windows CE Based Devices'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpuyURwSxI3qmKGnIVoAppgA2_SpeqqLT09OoRH-_9wzXWqhKrb3TYI4Hux6ri41Fi4nJjL9DqeG2qKy6_ruVJgm9ORIN5o_mChAPB1IFEHPS_Tt-XqNHLfcy-TtKuKx9vAS4pjoi0VNyE/s72-c/Update+Driver+Software.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-157838544004412885.post-8408744791093002615</id><published>2011-09-06T03:59:00.000-07:00</published><updated>2011-09-06T04:08:09.333-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET Compact Framework"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows CE"/><title type='text'>Exception messages in .NET Compact Framework</title><content type='html'>The .NET Compact Framework team decided not to include libraries that contain error message strings by default since these would occupy more space and are in most cases not meant for the end users. &lt;br /&gt;
As developers, we need to these messages for debugging purposes, specially when we are not using Visual Studio. Whenever an exception occurs, the log entry for it would look like this: &quot;&lt;em&gt;An error message cannot be displayed because an optional resource assembly containing it cannot be found&lt;/em&gt;&quot;. This &lt;a href=&quot;http://blogs.msdn.com/b/netcfteam/archive/2004/08/06/210232.aspx&quot;&gt;post&lt;/a&gt; of the .NET Compact Framework team explains what we need to do in order to enable descriptive exception messages on our Windows Mobile/ CE based device. &lt;br /&gt;
Basically what you need to do is copy the System_SR_[Language].CAB&amp;nbsp; file from your computer to the device and then double click it to install the .cab. If your language of choice is English, you&amp;nbsp;need to copy the System_SR_ENU.cab, installed by default in &lt;em&gt;C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\Diagnostics.&lt;/em&gt;&lt;br /&gt;
After installing this .cab file on the mobile device, you will start seeing descriptive exception messages, that are far more helpful.&lt;br /&gt;
&lt;br /&gt;
Learn more on overall Compact Framework development in &lt;a href=&quot;http://www.amazon.com/gp/product/0321573587/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;amp;tag=technjourn-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321573587&quot;&gt;C# from Programming .NET Compact Framework 3.5 (2nd Edition)&lt;/a&gt; by Paul Yao and David Durant.</content><link rel='replies' type='application/atom+xml' href='http://morningcallstack.blogspot.com/feeds/8408744791093002615/comments/default' title='Postare comentarii'/><link rel='replies' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/exception-messages-in-net-compact.html#comment-form' title='0 comentarii'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/8408744791093002615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/157838544004412885/posts/default/8408744791093002615'/><link rel='alternate' type='text/html' href='http://morningcallstack.blogspot.com/2011/09/exception-messages-in-net-compact.html' title='Exception messages in .NET Compact Framework'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>