<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem: Fremde Library verwenden und verstehen]]></title><description><![CDATA[<p>Hallo, bin ja erbärmlicher Newbie. Zwecks Vereinfachung von String-Operationen habe ich Boost eingebunden und das Wunder geschah: es funktionierte. In Visual Studio in den Projektoptionen (&quot;Zus. Includeverzeichnisse&quot;) angegeben und im Code als #include. Das klappt soweit.</p>
<p>Nun wollte ich <a href="http://cryptopp.com/docs/ref/sha_8h-source.html" rel="nofollow">sha.h</a> einbinden. Ich will nämlich einen Eingabestring reintun und einen SHA512-Hash in ein Stringobjekt rausbekommen.</p>
<p>Mit dem #include &lt;sha.h&gt; klappt das schon mal. Wenn ich anfange, den Namespace &quot;CryptoPP::&quot; zu tippen, macht mir Visual Studio auch Angebote. Das ist ja schon mal etwas :D. Nun versuche ich zu ergründen, wie ich meinen String &quot;flatinput&quot;, ein Objekt der Klasse string afaics, da hineinbekomme und einen SHA512-String heraus.</p>
<p>Ich schaue mir also sha.h an. Und da sehe ich:</p>
<pre><code class="language-cpp">00044 class CRYPTOPP_DLL SHA512 : public IteratedHashWithStaticTransform&lt;word64, BigEndian, 128, 64, SHA512, 64, CRYPTOPP_BOOL_X86&gt;
00045 {
00046 public:
00047         static void CRYPTOPP_API InitState(HashWordType *state);
00048         static void CRYPTOPP_API Transform(word64 *digest, const word64 *data);
00049         static const char * CRYPTOPP_API StaticAlgorithmName() {return &quot;SHA-512&quot;;}
00050 };
</code></pre>
<p>Hinter dem public, sind das &quot;öffentliche Methoden&quot;, d.h. 3 Methoden, die ich nutzen kann?<br />
Müsste ich also in meinem Code ein Objekt vom Typ sha512 erzeugen (&quot;CryptoPP::SHA512 sha512objekt&quot;) und dann mit &quot;sha512objekt.Transform&quot; weitermachen? Leider gehts in meinen Tests nicht weiter, denn, siehe die Zeile im Code unten &quot;CryptoPP::SHA512 sha512objekt;&quot; bringt mir 1000 Linker-Fehler: &quot;error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: __thiscall CryptoPP::Algorithm::Algorithm(bool)&quot; ??0Algorithm@CryptoPP@@QAE@_N@Z)&quot;.&quot;</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;boost/algorithm/string/case_conv.hpp&gt;
#include &lt;sha.h&gt;

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	CryptoPP::SHA512 sha512objekt; //bringt Compilerfehler!
	string svc, usr, add, flatinput;
	cout &lt;&lt; &quot;svc:&quot;; cin &gt;&gt; svc;
	cout &lt;&lt; &quot;usr:&quot;; cin &gt;&gt; usr;
	cout &lt;&lt; &quot;add:&quot;; cin &gt;&gt; add;
	boost::to_lower(svc); boost::to_lower(usr); boost::to_lower(add);
	flatinput = svc + usr + add;
	cout &lt;&lt; endl &lt;&lt; &quot;Ausgabe:&quot; &lt;&lt; flatinput &lt;&lt; endl;
	cin &gt;&gt; svc; // Wusste nicht, wie sonst die .exe anhält.
	return 0;
}
</code></pre>
<p>Wie immer für jeden Hinweis dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253782/problem-fremde-library-verwenden-und-verstehen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 11:48:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253782.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Nov 2009 14:49:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Fri, 06 Nov 2009 14:49:54 GMT]]></title><description><![CDATA[<p>Hallo, bin ja erbärmlicher Newbie. Zwecks Vereinfachung von String-Operationen habe ich Boost eingebunden und das Wunder geschah: es funktionierte. In Visual Studio in den Projektoptionen (&quot;Zus. Includeverzeichnisse&quot;) angegeben und im Code als #include. Das klappt soweit.</p>
<p>Nun wollte ich <a href="http://cryptopp.com/docs/ref/sha_8h-source.html" rel="nofollow">sha.h</a> einbinden. Ich will nämlich einen Eingabestring reintun und einen SHA512-Hash in ein Stringobjekt rausbekommen.</p>
<p>Mit dem #include &lt;sha.h&gt; klappt das schon mal. Wenn ich anfange, den Namespace &quot;CryptoPP::&quot; zu tippen, macht mir Visual Studio auch Angebote. Das ist ja schon mal etwas :D. Nun versuche ich zu ergründen, wie ich meinen String &quot;flatinput&quot;, ein Objekt der Klasse string afaics, da hineinbekomme und einen SHA512-String heraus.</p>
<p>Ich schaue mir also sha.h an. Und da sehe ich:</p>
<pre><code class="language-cpp">00044 class CRYPTOPP_DLL SHA512 : public IteratedHashWithStaticTransform&lt;word64, BigEndian, 128, 64, SHA512, 64, CRYPTOPP_BOOL_X86&gt;
00045 {
00046 public:
00047         static void CRYPTOPP_API InitState(HashWordType *state);
00048         static void CRYPTOPP_API Transform(word64 *digest, const word64 *data);
00049         static const char * CRYPTOPP_API StaticAlgorithmName() {return &quot;SHA-512&quot;;}
00050 };
</code></pre>
<p>Hinter dem public, sind das &quot;öffentliche Methoden&quot;, d.h. 3 Methoden, die ich nutzen kann?<br />
Müsste ich also in meinem Code ein Objekt vom Typ sha512 erzeugen (&quot;CryptoPP::SHA512 sha512objekt&quot;) und dann mit &quot;sha512objekt.Transform&quot; weitermachen? Leider gehts in meinen Tests nicht weiter, denn, siehe die Zeile im Code unten &quot;CryptoPP::SHA512 sha512objekt;&quot; bringt mir 1000 Linker-Fehler: &quot;error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: __thiscall CryptoPP::Algorithm::Algorithm(bool)&quot; ??0Algorithm@CryptoPP@@QAE@_N@Z)&quot;.&quot;</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;boost/algorithm/string/case_conv.hpp&gt;
#include &lt;sha.h&gt;

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	CryptoPP::SHA512 sha512objekt; //bringt Compilerfehler!
	string svc, usr, add, flatinput;
	cout &lt;&lt; &quot;svc:&quot;; cin &gt;&gt; svc;
	cout &lt;&lt; &quot;usr:&quot;; cin &gt;&gt; usr;
	cout &lt;&lt; &quot;add:&quot;; cin &gt;&gt; add;
	boost::to_lower(svc); boost::to_lower(usr); boost::to_lower(add);
	flatinput = svc + usr + add;
	cout &lt;&lt; endl &lt;&lt; &quot;Ausgabe:&quot; &lt;&lt; flatinput &lt;&lt; endl;
	cin &gt;&gt; svc; // Wusste nicht, wie sonst die .exe anhält.
	return 0;
}
</code></pre>
<p>Wie immer für jeden Hinweis dankbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804453</guid><dc:creator><![CDATA[Squeller]]></dc:creator><pubDate>Fri, 06 Nov 2009 14:49:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Fri, 06 Nov 2009 16:25:03 GMT]]></title><description><![CDATA[<p>Das drei sind alles statische Methoden, d.h. du benötigst kein Objekt der Klasse, sondern rufst sie einfach mit 'CryptoPP::SHA512::' auf, d.h.:</p>
<pre><code class="language-cpp">CryptoPP::SHA512::InitState(...);
</code></pre>
<p>Und um den Linker-Fehler zu entfernen, mußt du auch noch die &quot;.lib&quot;-Datei deinem Projekt hinzufügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804507</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 06 Nov 2009 16:25:03 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Fri, 06 Nov 2009 16:40:56 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>Das drei sind alles statische Methoden, d.h. du benötigst kein Objekt der Klasse, sondern rufst sie einfach mit 'CryptoPP::SHA512::' auf, d.h.:</p>
<pre><code class="language-cpp">CryptoPP::SHA512::InitState(...);
</code></pre>
</blockquote>
<p>Aber sowas hier funktioniert nicht, ich nehme an die Typen sind unverträglich:<br />
CryptoPP::SHA512::Transform(flatinput,output);<br />
(flatinput,output) sind Objekte der String-Klasse.</p>
<p>&quot;error C2664: 'CryptoPP::SHA512::Transform': Konvertierung des Parameters 1 von 'std::string' in 'CryptoPP::word64 *' nicht möglich&quot;</p>
<p>Ich nehme an, ich habe hier grundsätzlich nicht verstanden, welcher Art Eingabe und Ausgabe von sha512::transform sein sollen?! Was kann ich mir unter Word64 vorstellen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804515</guid><dc:creator><![CDATA[Squeller]]></dc:creator><pubDate>Fri, 06 Nov 2009 16:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Fri, 06 Nov 2009 17:27:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">static void CRYPTOPP_API Transform(word64 *digest, const word64 *data);
</code></pre>
<p>Als Parameter werden zwei Variablen vom Typ word64 erwartet, nicht string.<br />
Es ist unwahrscheinlich dass word64 ein typedef auf string ist.<br />
Vermutlich ist irgendwo in der Header Datei ein #define oder ein typedef aus dem du schließen kannst was dahinter steckt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804535</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Fri, 06 Nov 2009 17:27:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Sat, 07 Nov 2009 10:53:48 GMT]]></title><description><![CDATA[<p>Ja, word64 ist als 'unsigned __int64' (bzw. 'unsigned long long') definiert (in &quot;config.h&quot;). Aber mit welchen konkreten Daten die Funktion jetzt aufgerufen wird, k.A.</p>
<p>Am besten, du suchst dir ein Tutorial zu der Klasse direkt auf <a href="http://cryptopp.com/" rel="nofollow">http://cryptopp.com/</a>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804743</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 07 Nov 2009 10:53:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Sat, 07 Nov 2009 11:22:04 GMT]]></title><description><![CDATA[<p>Squeller schrieb:</p>
<blockquote>
<p>Müsste ich also in meinem Code ein Objekt vom Typ sha512 erzeugen (&quot;CryptoPP::SHA512 sha512objekt&quot;) und dann mit &quot;sha512objekt.Transform&quot; weitermachen? Leider gehts in meinen Tests nicht weiter, denn, siehe die Zeile im Code unten &quot;CryptoPP::SHA512 sha512objekt;&quot; bringt mir 1000 Linker-Fehler: &quot;error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: __thiscall CryptoPP::Algorithm::Algorithm(bool)&quot; ??0Algorithm@CryptoPP@@QAE@_N@Z)&quot;.&quot;</p>
</blockquote>
<p>Das sind Linker-Fehler, d.h. die Kompilierung ist schon erfolgreich durch gelaufen. Du hast wahrscheinlich einfach vergessen die Crypto Library dazu zu linken, in der CryptoPP::Algorithm::Algorithm(bool) implementiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804754</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 07 Nov 2009 11:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Sat, 07 Nov 2009 11:31:53 GMT]]></title><description><![CDATA[<p>Habe es mir nicht angeschaut, aber man kann hier was runter laden:<br />
<a href="http://www.bitvise.com/users-guide.html" rel="nofollow">http://www.bitvise.com/users-guide.html</a><br />
Evtl. sind bei der Library auch Test-Units bei, in die man sich was abschauen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1804757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1804757</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 07 Nov 2009 11:31:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Sun, 08 Nov 2009 07:37:31 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Habe es mir nicht angeschaut, aber man kann hier was runter laden:<br />
<a href="http://www.bitvise.com/users-guide.html" rel="nofollow">http://www.bitvise.com/users-guide.html</a><br />
Evtl. sind bei der Library auch Test-Units bei, in die man sich was abschauen kann?</p>
</blockquote>
<p>Danke, die hatte ich auch gefunden. Leider wird mir unter Win7 nichts angezeigt &quot;Die Navigation zu der Webseite wurde abgebrochen.&quot;, muss mal sehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805014</guid><dc:creator><![CDATA[Squeller]]></dc:creator><pubDate>Sun, 08 Nov 2009 07:37:31 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Sun, 08 Nov 2009 07:39:37 GMT]]></title><description><![CDATA[<p>Squeller schrieb:</p>
<blockquote>
<p>Artchi schrieb:</p>
<blockquote>
<p>Habe es mir nicht angeschaut, aber man kann hier was runter laden:<br />
<a href="http://www.bitvise.com/users-guide.html" rel="nofollow">http://www.bitvise.com/users-guide.html</a><br />
Evtl. sind bei der Library auch Test-Units bei, in die man sich was abschauen kann?</p>
</blockquote>
<p>Danke, die hatte ich auch gefunden. Leider wird mir unter Win7 nichts angezeigt &quot;Die Navigation zu der Webseite wurde abgebrochen.&quot;, muss mal sehen...</p>
</blockquote>
<p>Dann verwende einen anderen Browser als &quot;Win7&quot;...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805016</guid><dc:creator><![CDATA[Broosa]]></dc:creator><pubDate>Sun, 08 Nov 2009 07:39:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Sun, 08 Nov 2009 11:58:14 GMT]]></title><description><![CDATA[<p>Broosa schrieb:</p>
<blockquote>
<p>Squeller schrieb:</p>
<blockquote>
<p>Artchi schrieb:</p>
<blockquote>
<p>Habe es mir nicht angeschaut, aber man kann hier was runter laden:<br />
<a href="http://www.bitvise.com/users-guide.html" rel="nofollow">http://www.bitvise.com/users-guide.html</a><br />
Evtl. sind bei der Library auch Test-Units bei, in die man sich was abschauen kann?</p>
</blockquote>
<p>Danke, die hatte ich auch gefunden. Leider wird mir unter Win7 nichts angezeigt &quot;Die Navigation zu der Webseite wurde abgebrochen.&quot;, muss mal sehen...</p>
</blockquote>
<p>Dann verwende einen anderen Browser als &quot;Win7&quot;...</p>
</blockquote>
<p>Gemeint war &quot;unter Windows 7 wird das .chm nicht angezeigt&quot;. Es ist vermutlich eine Frage der IE-Sicherheitsoptionen, da im chm viewer vermutlich ein IE-Objekt werkelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805108</guid><dc:creator><![CDATA[Squeller]]></dc:creator><pubDate>Sun, 08 Nov 2009 11:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Fremde Library verwenden und verstehen on Sun, 08 Nov 2009 17:18:31 GMT]]></title><description><![CDATA[<p>Naja, das wird wenig mit Win7 zu tun haben, als eher, das der IE <em>entfernte</em> Objekte aus Sicherheitsgründen ungern anzeigt. Lösung: auf die gespeicherte Datei gehen, rechte Maustaste, Eigenschaften und dann unten auf &quot;Zulassen&quot; klicken (unter WinXP). Danach geht es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805265</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sun, 08 Nov 2009 17:18:31 GMT</pubDate></item></channel></rss>