diff --git a/jlib/util/curl_wrapper.h b/jlib/util/curl_wrapper.h
index f1df807a22eb5a735063cad45886fc8958662eb6..7dff50a334f0acad2f5fe377267661c65abe6511 100644
--- a/jlib/util/curl_wrapper.h
+++ b/jlib/util/curl_wrapper.h
@@ -1,15 +1,32 @@
 #pragma once
 
-#include "../3rdparty/curl/curl.h"
+/**
+* simple curl wrapper
+* under windows, you should config project's include/lib path to your curl-path.
+* define CURL_STATICLIB in your prject
+* the input libs are: libcurl.lib;ws2_32.lib;wldap32.lib;crypt32.lib;
+*/
+
+
+#include <curl/curl.h>
 #include <string>
 #include "mem_tool.h"
 
 namespace jlib
 {
 
-class Curl
+struct CurlHelper {
+	CurlHelper() {
+		curl_global_init(CURL_GLOBAL_ALL);
+	}
+
+	~CurlHelper() {
+		curl_global_cleanup();
+	}
+};
+
+struct Curl
 {
-public:
 	Curl() { static CurlHelper helper = {}; }
 
 	~Curl() {
@@ -79,16 +96,8 @@ public:
 	}
 #endif // JLIB_LOG2_ENABLED
 
-private:
-	struct CurlHelper {
-		CurlHelper() {
-			curl_global_init(CURL_GLOBAL_ALL);
-		}
 
-		~CurlHelper() {
-			curl_global_cleanup();
-		}
-	};
+///////////////////////////// details ///////////////////////////////
 
 	CURL* curl_ = nullptr;
 	std::string buffer_ = {};
diff --git a/test/test_curl_wrapper/test_curl_wrapper.cpp b/test/test_curl_wrapper/test_curl_wrapper.cpp
index fd1f47a412a8fd580ae641845bfbeac476382799..bae6706e74e89c190054241da506788dff53bf6b 100644
--- a/test/test_curl_wrapper/test_curl_wrapper.cpp
+++ b/test/test_curl_wrapper/test_curl_wrapper.cpp
@@ -1,9 +1,6 @@
 #include "../../jlib/util/curl_wrapper.h"
 #include <stdio.h>
 
-#ifdef _WIN32
-#pragma comment(lib, "../../jlib/3rdparty/curl/libcurldll.a")
-#endif
 
 using namespace jlib;
 
@@ -11,7 +8,9 @@ int main()
 {
 	Curl curl;
 	curl.init();
-	curl.get("qq.com");
+	curl.get("https://baidu.com");
 	printf("HTTP %ld\n", curl.lastHttpCode());
+	printf("error %d\n", curl.lastError());
+	printf("error msg %s\n", curl.lastErrorMsg().data());
 	printf("%s\n", curl.lastHttpContent().data());
 }
diff --git a/test/test_curl_wrapper/test_curl_wrapper.vcxproj b/test/test_curl_wrapper/test_curl_wrapper.vcxproj
index 68780ae119d97676ba88c437ff0e636aea901c58..ddb08d2f30d3b6679053228d247f3d60feab56f9 100644
--- a/test/test_curl_wrapper/test_curl_wrapper.vcxproj
+++ b/test/test_curl_wrapper/test_curl_wrapper.vcxproj
@@ -76,9 +76,13 @@
       <Optimization>Disabled</Optimization>
       <SDLCheck>true</SDLCheck>
       <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>$(DEVLIBS)\curl-7.66.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     <Link>
       <SubSystem>Console</SubSystem>
+      <AdditionalLibraryDirectories>$(DEVLIBS)\curl-7.66.0\build\Win32\VC15\LIB Release - DLL Windows SSPI;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>libcurl.lib;ws2_32.lib;wldap32.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">